Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • sw/misc/linux
1 result
Show changes
Showing
with 163 additions and 39 deletions
...@@ -45,9 +45,14 @@ fffe8000 fffeffff DTCM mapping area for platforms with ...@@ -45,9 +45,14 @@ fffe8000 fffeffff DTCM mapping area for platforms with
fffe0000 fffe7fff ITCM mapping area for platforms with fffe0000 fffe7fff ITCM mapping area for platforms with
ITCM mounted inside the CPU. ITCM mounted inside the CPU.
ffc00000 ffefffff Fixmap mapping region. Addresses provided ffc80000 ffefffff Fixmap mapping region. Addresses provided
by fix_to_virt() will be located here. by fix_to_virt() will be located here.
ffc00000 ffc7ffff Guard region
ff800000 ffbfffff Permanent, fixed read-only mapping of the
firmware provided DT blob
fee00000 feffffff Mapping of PCI I/O space. This is a static fee00000 feffffff Mapping of PCI I/O space. This is a static
mapping within the vmalloc space. mapping within the vmalloc space.
......
...@@ -70,8 +70,12 @@ stable kernels. ...@@ -70,8 +70,12 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 | | ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A57 | #1742098 | ARM64_ERRATUM_1742098 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A72 | #853709 | N/A | | ARM | Cortex-A72 | #853709 | N/A |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A72 | #1655431 | ARM64_ERRATUM_1742098 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 | | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 | | ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
...@@ -130,6 +134,9 @@ stable kernels. ...@@ -130,6 +134,9 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A | | Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| Hisilicon | Hip08 SMMU PMCG | #162001900 | N/A |
| | Hip09 SMMU PMCG | | |
+----------------+-----------------+-----------------+-----------------------------+
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 | | Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
......
...@@ -45,14 +45,24 @@ how the user addresses are used by the kernel: ...@@ -45,14 +45,24 @@ how the user addresses are used by the kernel:
1. User addresses not accessed by the kernel but used for address space 1. User addresses not accessed by the kernel but used for address space
management (e.g. ``mprotect()``, ``madvise()``). The use of valid management (e.g. ``mprotect()``, ``madvise()``). The use of valid
tagged pointers in this context is allowed with the exception of tagged pointers in this context is allowed with these exceptions:
``brk()``, ``mmap()`` and the ``new_address`` argument to
``mremap()`` as these have the potential to alias with existing - ``brk()``, ``mmap()`` and the ``new_address`` argument to
user addresses. ``mremap()`` as these have the potential to alias with existing
user addresses.
NOTE: This behaviour changed in v5.6 and so some earlier kernels may
incorrectly accept valid tagged pointers for the ``brk()``, NOTE: This behaviour changed in v5.6 and so some earlier kernels may
``mmap()`` and ``mremap()`` system calls. incorrectly accept valid tagged pointers for the ``brk()``,
``mmap()`` and ``mremap()`` system calls.
- The ``range.start``, ``start`` and ``dst`` arguments to the
``UFFDIO_*`` ``ioctl()``s used on a file descriptor obtained from
``userfaultfd()``, as fault addresses subsequently obtained by reading
the file descriptor will be untagged, which may otherwise confuse
tag-unaware programs.
NOTE: This behaviour changed in v5.14 and so some earlier kernels may
incorrectly accept valid tagged pointers for this system call.
2. User addresses accessed by the kernel (e.g. ``write()``). This ABI 2. User addresses accessed by the kernel (e.g. ``write()``). This ABI
relaxation is disabled by default and the application thread needs to relaxation is disabled by default and the application thread needs to
......
...@@ -59,7 +59,7 @@ Like with atomic_t, the rule of thumb is: ...@@ -59,7 +59,7 @@ Like with atomic_t, the rule of thumb is:
- RMW operations that have a return value are fully ordered. - RMW operations that have a return value are fully ordered.
- RMW operations that are conditional are unordered on FAILURE, - RMW operations that are conditional are unordered on FAILURE,
otherwise the above rules apply. In the case of test_and_{}_bit() operations, otherwise the above rules apply. In the case of test_and_set_bit_lock(),
if the bit in memory is unchanged by the operation then it is deemed to have if the bit in memory is unchanged by the operation then it is deemed to have
failed. failed.
......
...@@ -98,7 +98,7 @@ finally: ...@@ -98,7 +98,7 @@ finally:
# #
# This is also used if you do content translation via gettext catalogs. # This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases. # Usually you set "language" from the command line for these cases.
language = None language = 'en'
# There are two options for replacing |today|: either, you set today to some # There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used: # non-false value, then it is used:
......
...@@ -461,13 +461,15 @@ or iterations will move the index to the first index in the range. ...@@ -461,13 +461,15 @@ or iterations will move the index to the first index in the range.
Each entry will only be returned once, no matter how many indices it Each entry will only be returned once, no matter how many indices it
occupies. occupies.
Using xas_next() or xas_prev() with a multi-index xa_state Using xas_next() or xas_prev() with a multi-index xa_state is not
is not supported. Using either of these functions on a multi-index entry supported. Using either of these functions on a multi-index entry will
will reveal sibling entries; these should be skipped over by the caller. reveal sibling entries; these should be skipped over by the caller.
Storing ``NULL`` into any index of a multi-index entry will set the entry Storing ``NULL`` into any index of a multi-index entry will set the
at every index to ``NULL`` and dissolve the tie. Splitting a multi-index entry at every index to ``NULL`` and dissolve the tie. A multi-index
entry into entries occupying smaller ranges is not yet supported. entry can be split into entries occupying smaller ranges by calling
xas_split_alloc() without the xa_lock held, followed by taking the lock
and calling xas_split().
Functions and structures Functions and structures
======================== ========================
......
...@@ -39,6 +39,10 @@ Setup ...@@ -39,6 +39,10 @@ Setup
this mode. In this case, you should build the kernel with this mode. In this case, you should build the kernel with
CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR. CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR.
- Build the gdb scripts (required on kernels v5.1 and above)::
make scripts_gdb
- Enable the gdb stub of QEMU/KVM, either - Enable the gdb stub of QEMU/KVM, either
- at VM startup time by appending "-s" to the QEMU command line - at VM startup time by appending "-s" to the QEMU command line
......
...@@ -162,6 +162,7 @@ properties: ...@@ -162,6 +162,7 @@ properties:
- enum: - enum:
- fsl,imx6ul-14x14-evk # i.MX6 UltraLite 14x14 EVK Board - fsl,imx6ul-14x14-evk # i.MX6 UltraLite 14x14 EVK Board
- kontron,imx6ul-n6310-som # Kontron N6310 SOM - kontron,imx6ul-n6310-som # Kontron N6310 SOM
- kontron,imx6ul-n6311-som # Kontron N6311 SOM
- const: fsl,imx6ul - const: fsl,imx6ul
- description: Kontron N6310 S Board - description: Kontron N6310 S Board
...@@ -170,6 +171,12 @@ properties: ...@@ -170,6 +171,12 @@ properties:
- const: kontron,imx6ul-n6310-som - const: kontron,imx6ul-n6310-som
- const: fsl,imx6ul - const: fsl,imx6ul
- description: Kontron N6311 S Board
items:
- const: kontron,imx6ul-n6311-s
- const: kontron,imx6ul-n6311-som
- const: fsl,imx6ul
- description: Kontron N6310 S 43 Board - description: Kontron N6310 S 43 Board
items: items:
- const: kontron,imx6ul-n6310-s-43 - const: kontron,imx6ul-n6310-s-43
...@@ -181,6 +188,13 @@ properties: ...@@ -181,6 +188,13 @@ properties:
items: items:
- enum: - enum:
- fsl,imx6ull-14x14-evk # i.MX6 UltraLiteLite 14x14 EVK Board - fsl,imx6ull-14x14-evk # i.MX6 UltraLiteLite 14x14 EVK Board
- kontron,imx6ull-n6411-som # Kontron N6411 SOM
- const: fsl,imx6ull
- description: Kontron N6411 S Board
items:
- const: kontron,imx6ull-n6411-s
- const: kontron,imx6ull-n6411-som
- const: fsl,imx6ull - const: fsl,imx6ull
- description: i.MX6ULZ based Boards - description: i.MX6ULZ based Boards
......
...@@ -112,8 +112,8 @@ properties: ...@@ -112,8 +112,8 @@ properties:
- const: qcom,msm8974 - const: qcom,msm8974
- items: - items:
- const: qcom,msm8916-mtp/1
- const: qcom,msm8916-mtp - const: qcom,msm8916-mtp
- const: qcom,msm8916-mtp/1
- const: qcom,msm8916 - const: qcom,msm8916
- items: - items:
......
...@@ -49,7 +49,7 @@ properties: ...@@ -49,7 +49,7 @@ properties:
- const: toradex,apalis_t30 - const: toradex,apalis_t30
- const: nvidia,tegra30 - const: nvidia,tegra30
- items: - items:
- const: toradex,apalis_t30-eval-v1.1 - const: toradex,apalis_t30-v1.1-eval
- const: toradex,apalis_t30-eval - const: toradex,apalis_t30-eval
- const: toradex,apalis_t30-v1.1 - const: toradex,apalis_t30-v1.1
- const: toradex,apalis_t30 - const: toradex,apalis_t30
......
...@@ -10,6 +10,9 @@ title: Amlogic specific extensions to the Synopsys Designware HDMI Controller ...@@ -10,6 +10,9 @@ title: Amlogic specific extensions to the Synopsys Designware HDMI Controller
maintainers: maintainers:
- Neil Armstrong <narmstrong@baylibre.com> - Neil Armstrong <narmstrong@baylibre.com>
allOf:
- $ref: /schemas/sound/name-prefix.yaml#
description: | description: |
The Amlogic Meson Synopsys Designware Integration is composed of The Amlogic Meson Synopsys Designware Integration is composed of
- A Synopsys DesignWare HDMI Controller IP - A Synopsys DesignWare HDMI Controller IP
...@@ -101,6 +104,8 @@ properties: ...@@ -101,6 +104,8 @@ properties:
"#sound-dai-cells": "#sound-dai-cells":
const: 0 const: 0
sound-name-prefix: true
required: required:
- compatible - compatible
- reg - reg
......
...@@ -78,6 +78,10 @@ properties: ...@@ -78,6 +78,10 @@ properties:
interrupts: interrupts:
maxItems: 1 maxItems: 1
amlogic,canvas:
description: should point to a canvas provider node
$ref: /schemas/types.yaml#/definitions/phandle
power-domains: power-domains:
maxItems: 1 maxItems: 1
description: phandle to the associated power domain description: phandle to the associated power domain
...@@ -106,6 +110,7 @@ required: ...@@ -106,6 +110,7 @@ required:
- port@1 - port@1
- "#address-cells" - "#address-cells"
- "#size-cells" - "#size-cells"
- amlogic,canvas
examples: examples:
- | - |
...@@ -116,6 +121,7 @@ examples: ...@@ -116,6 +121,7 @@ examples:
interrupts = <3>; interrupts = <3>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
amlogic,canvas = <&canvas>;
/* CVBS VDAC output port */ /* CVBS VDAC output port */
port@0 { port@0 {
......
Analog Device ADV7511(W)/13/33 HDMI Encoders Analog Device ADV7511(W)/13/33/35 HDMI Encoders
----------------------------------------- -----------------------------------------
The ADV7511, ADV7511W, ADV7513 and ADV7533 are HDMI audio and video transmitters The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
compatible with HDMI 1.4 and DVI 1.0. They support color space conversion, transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
S/PDIF, CEC and HDCP. ADV7533 supports the DSI interface for input pixels, while conversion, S/PDIF, CEC and HDCP. ADV7533 and ADV7535 support the DSI interface
the others support RGB interface. for input pixels, while the others support RGB interface.
Required properties: Required properties:
...@@ -13,6 +13,7 @@ Required properties: ...@@ -13,6 +13,7 @@ Required properties:
"adi,adv7511w" "adi,adv7511w"
"adi,adv7513" "adi,adv7513"
"adi,adv7533" "adi,adv7533"
"adi,adv7535"
- reg: I2C slave addresses - reg: I2C slave addresses
The ADV7511 internal registers are split into four pages exposed through The ADV7511 internal registers are split into four pages exposed through
...@@ -52,7 +53,7 @@ The following input format properties are required except in "rgb 1x" and ...@@ -52,7 +53,7 @@ The following input format properties are required except in "rgb 1x" and
- bgvdd-supply: A 1.8V supply that powers up the BGVDD pin. This is - bgvdd-supply: A 1.8V supply that powers up the BGVDD pin. This is
needed only for ADV7511. needed only for ADV7511.
The following properties are required for ADV7533: The following properties are required for ADV7533 and ADV7535:
- adi,dsi-lanes: Number of DSI data lanes connected to the DSI host. It should - adi,dsi-lanes: Number of DSI data lanes connected to the DSI host. It should
be one of 1, 2, 3 or 4. be one of 1, 2, 3 or 4.
...@@ -71,23 +72,31 @@ Optional properties: ...@@ -71,23 +72,31 @@ Optional properties:
- adi,embedded-sync: The input uses synchronization signals embedded in the - adi,embedded-sync: The input uses synchronization signals embedded in the
data stream (similar to BT.656). Defaults to separate H/V synchronization data stream (similar to BT.656). Defaults to separate H/V synchronization
signals. signals.
- adi,disable-timing-generator: Only for ADV7533. Disables the internal timing - adi,disable-timing-generator: Only for ADV7533 and ADV7535. Disables the
generator. The chip will rely on the sync signals in the DSI data lanes, internal timing generator. The chip will rely on the sync signals in the DSI
rather than generate its own timings for HDMI output. data lanes, rather than generate its own timings for HDMI output.
- clocks: from common clock binding: reference to the CEC clock. - clocks: from common clock binding: reference to the CEC clock.
- clock-names: from common clock binding: must be "cec". - clock-names: from common clock binding: must be "cec".
- reg-names : Names of maps with programmable addresses. - reg-names : Names of maps with programmable addresses.
It can contain any map needing a non-default address. It can contain any map needing a non-default address.
Possible maps names are : "main", "edid", "cec", "packet" Possible maps names are : "main", "edid", "cec", "packet"
- adi,dsi-channel: Only for ADV7533 and ADV7535. DSI channel number to be used
when communicating with the DSI peripheral. It should be one of 0, 1, 2 or 3.
- adi,addr-cec: Only for ADV7533 and ADV7535. The I2C DSI-CEC register map
address to be programmed into the MAIN register map.
- adi,addr-edid: Only for ADV7533 and ADV7535. The I2C EDID register map
to be programmed into the MAIN register map.
- adi,addr-pkt: Only for ADV7533 and ADV7535. The I2C PACKET register map
to be programmed into the MAIN register map.
Required nodes: Required nodes:
The ADV7511 has two video ports. Their connections are modelled using the OF The ADV7511 has two video ports. Their connections are modelled using the OF
graph bindings specified in Documentation/devicetree/bindings/graph.txt. graph bindings specified in Documentation/devicetree/bindings/graph.txt.
- Video port 0 for the RGB, YUV or DSI input. In the case of ADV7533, the - Video port 0 for the RGB, YUV or DSI input. In the case of ADV7533 and
remote endpoint phandle should be a reference to a valid mipi_dsi_host device ADV7535, the remote endpoint phandle should be a reference to a valid
node. mipi_dsi_host device node.
- Video port 1 for the HDMI output - Video port 1 for the HDMI output
- Audio port 2 for the HDMI audio input - Audio port 2 for the HDMI audio input
......
Samsung MIPI DSIM bridge bindings
The MIPI DSIM host controller drives the video signals from
display controller to video peripherals using DSI protocol.
This is an un-managed DSI bridge. In order to use this bridge,
an encoder or bridge must be implemented to manage the platform
specific initializations.
Required properties:
- compatible: "fsl,imx8mm-mipi-dsim"
- reg: the register range of the MIPI DSIM controller
- interrupts: the interrupt number for this module
- clock, clock-names: phandles to the MIPI-DSI clocks described in
Documentation/devicetree/bindings/clock/clock-bindings.txt
"cfg" - DSIM access clock
"pll-ref" - DSIM PHY PLL reference clock
- assigned-clocks: phandles to clocks that requires initial configuration
- assigned-clock-rates: rates of the clocks that requires initial configuration
- pref-clk: Assign DPHY PLL reference clock frequency. If not exists,
DSIM bridge driver will use the default lock frequency
which is 27MHz.
- port: input and output port nodes with endpoint definitions as
defined in Documentation/devicetree/bindings/graph.txt;
the input port should be connected to an encoder or a
bridge that manages this MIPI DSIM host and the output
port should be connected to a panel or a bridge input
port
Optional properties:
-dsi-gpr: a phandle which provides the MIPI DSIM control and gpr registers
example:
mipi_dsi: mipi_dsi@32E10000 {
compatible = "fsl,imx8mm-mipi-dsim";
reg = <0x0 0x32e10000 0x0 0x400>;
clocks = <&clk IMX8MM_CLK_DSI_CORE_DIV>,
<&clk IMX8MM_CLK_DSI_PHY_REF_DIV>;
clock-names = "cfg", "pll-ref";
assigned-clocks = <&clk IMX8MM_CLK_DSI_CORE_SRC>,
<&clk IMX8MM_CLK_DSI_PHY_REF_SRC>;
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>,
<&clk IMX8MM_VIDEO_PLL1_OUT>;
assigned-clock-rates = <266000000>, <594000000>;
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
dsi-gpr = <&dispmix_gpr>;
status = "disabled";
port@0 {
dsim_from_lcdif: endpoint {
remote-endpoint = <&lcdif_to_dsim>;
};
};
port@1 {
dsim_to_adv7535: endpoint {
remote-endpoint = <&adv7535_from_dsim>;
};
};
};
...@@ -58,7 +58,7 @@ if: ...@@ -58,7 +58,7 @@ if:
then: then:
properties: properties:
clocks: clocks:
maxItems: 2 minItems: 2
required: required:
- clock-names - clock-names
......
...@@ -9,6 +9,7 @@ Required properties: ...@@ -9,6 +9,7 @@ Required properties:
"fsl,imx53-sdma" "fsl,imx53-sdma"
"fsl,imx6q-sdma" "fsl,imx6q-sdma"
"fsl,imx7d-sdma" "fsl,imx7d-sdma"
"fsl,imx6ul-sdma"
"fsl,imx8mq-sdma" "fsl,imx8mq-sdma"
The -to variants should be preferred since they allow to determine the The -to variants should be preferred since they allow to determine the
correct ROM script addresses needed for the driver to work without additional correct ROM script addresses needed for the driver to work without additional
......
...@@ -34,8 +34,8 @@ Example: ...@@ -34,8 +34,8 @@ Example:
Use specific request line passing from dma Use specific request line passing from dma
For example, MMC request line is 5 For example, MMC request line is 5
sdhci: sdhci@98e00000 { mmc: mmc@98e00000 {
compatible = "moxa,moxart-sdhci"; compatible = "moxa,moxart-mmc";
reg = <0x98e00000 0x5C>; reg = <0x98e00000 0x5C>;
interrupts = <5 0>; interrupts = <5 0>;
clocks = <&clk_apb>; clocks = <&clk_apb>;
......
...@@ -9,8 +9,9 @@ Required properties: ...@@ -9,8 +9,9 @@ Required properties:
- The second cell is reserved and is currently unused. - The second cell is reserved and is currently unused.
- gpio-controller : Marks the device node as a GPIO controller. - gpio-controller : Marks the device node as a GPIO controller.
- interrupt-controller: Mark the device node as an interrupt controller - interrupt-controller: Mark the device node as an interrupt controller
- #interrupt-cells : Should be 1. The interrupt type is fixed in the hardware. - #interrupt-cells : Should be 2. The interrupt type is fixed in the hardware.
- The first cell is the GPIO offset number within the GPIO controller. - The first cell is the GPIO offset number within the GPIO controller.
- The second cell is the interrupt trigger type and level flags.
- interrupts: Specify the interrupt. - interrupts: Specify the interrupt.
- altr,interrupt-type: Specifies the interrupt trigger type the GPIO - altr,interrupt-type: Specifies the interrupt trigger type the GPIO
hardware is synthesized. This field is required if the Altera GPIO controller hardware is synthesized. This field is required if the Altera GPIO controller
...@@ -38,6 +39,6 @@ gpio_altr: gpio@ff200000 { ...@@ -38,6 +39,6 @@ gpio_altr: gpio@ff200000 {
altr,interrupt-type = <IRQ_TYPE_EDGE_RISING>; altr,interrupt-type = <IRQ_TYPE_EDGE_RISING>;
#gpio-cells = <2>; #gpio-cells = <2>;
gpio-controller; gpio-controller;
#interrupt-cells = <1>; #interrupt-cells = <2>;
interrupt-controller; interrupt-controller;
}; };
...@@ -55,7 +55,7 @@ Required Properties: ...@@ -55,7 +55,7 @@ Required Properties:
corresponds to a range of host irqs. corresponds to a range of host irqs.
For more details on TISCI IRQ resource management refer: For more details on TISCI IRQ resource management refer:
http://downloads.ti.com/tisci/esd/latest/2_tisci_msgs/rm/rm_irq.html https://downloads.ti.com/tisci/esd/latest/2_tisci_msgs/rm/rm_irq.html
Example: Example:
-------- --------
......
...@@ -122,7 +122,7 @@ on various other factors also like; ...@@ -122,7 +122,7 @@ on various other factors also like;
so the device should have enough free bytes available its OOB/Spare so the device should have enough free bytes available its OOB/Spare
area to accommodate ECC for entire page. In general following expression area to accommodate ECC for entire page. In general following expression
helps in determining if given device can accommodate ECC syndrome: helps in determining if given device can accommodate ECC syndrome:
"2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE" "2 + (PAGESIZE / 512) * ECC_BYTES" <= OOBSIZE"
where where
OOBSIZE number of bytes in OOB/spare area OOBSIZE number of bytes in OOB/spare area
PAGESIZE number of bytes in main-area of device page PAGESIZE number of bytes in main-area of device page
......