Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:common:configurations:device-tree-overlay

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:sbc:common:configurations:device-tree-overlay [2022/09/22 02:34]
hyphop
products:sbc:common:configurations:device-tree-overlay [2023/11/07 04:18] (current)
nick
Line 1: Line 1:
 ====== Device Tree Overlay ====== ====== Device Tree Overlay ======
  
-We can use DT overlays to enable or disable the peripherals without recompiling the kernel source code.+We can use DT overlays to enable/disable or change configuration for peripherals without recompiling the DT kernel source code.
  
-===== Device reference table ======+===== DT collections  =====
  
-^          DT Overlays Directory                                  DT Overlays Node  ^  DT Overlays Configuration File                           ^ +https://github.com/khadas/khadas-linux-kernel-dt-overlays
-^  VIM1    /boot/dtb/overlays/kvim                                overlays          |  /boot/env.txt                                            | +
-^  VIM2    /boot/dtb/overlays/kvim2                              | :::                | ::                                                      | +
-^  VIM3   |  /boot/dtb/overlays/kvim3                              | :::                | :::                                                       | +
-^  VIM3L  |  /boot/dtb/overlays/kvim3l                             | :::                | :::                                                       | +
-^  VIM1S  |  /boot/dtb/amlogic/kvim1s.dtb.overlays                  fdt_overlays      |  /boot/dtb/amlogic/kvim1s.dtb.overlay.env                 | +
-^  VIM4    /boot/dtb/amlogic/kvim4.dtb.overlays                  | :::                |  /boot/dtb/amlogic/kvim4.dtb.overlay.env                  | +
-^  Edge2  |  /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays  |  :::                /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env +
-^  Edge1  |  /boot/dtb/rockchip/overlays/caption                    overlays          |  /boot/env.txt                                            | +
-| :::      /boot/dtb/rockchip/overlays/edgev                     | :::                | :::                                                       |+
  
-===== Device configurations =====+===== Device Reference Table ======
  
-<tabbox VIM1/2/3/3L/Edge1>+^          Kernel Version  ^  DT overlays folder                                    ^  DT overlays list variable  ^  DT overlays config file                                  ^ 
 +^  VIM1   |  4.9/mainline    |  /boot/dtb/overlays/kvim                                overlays                    /boot/env.txt                                            | 
 +^  VIM2    4.9/mainline    |  /boot/dtb/overlays/kvim2                              | :::                         | :::                                                       | 
 +^  VIM3    4.9/mainline    |  /boot/dtb/overlays/kvim3                              | :::                         | :::                                                       | 
 +| :::      5.15            |  /boot/dtb/amlogic/kvim3.dtb.overlays                  |  fdt_overlays                /boot/dtb/amlogic/kvim3l.dtb.overlay.env                 | 
 +^  VIM3L  |  4.9/mainline    |  /boot/dtb/overlays/kvim3l                              overlays                    /boot/env.txt                                            | 
 +| :::      5.15            |  /boot/dtb/amlogic/kvim3l.dtb.overlays                  fdt_overlays                /boot/dtb/amlogic/kvim3l.dtb.overlay.env                 | 
 +^  VIM1S  |  5.4/5.15        |  /boot/dtb/amlogic/kvim1s.dtb.overlays                 | :::                          /boot/dtb/amlogic/kvim1s.dtb.overlay.env                 | 
 +^  VIM4    5.4/5.15        |  /boot/dtb/amlogic/kvim4.dtb.overlays                  | :::                          /boot/dtb/amlogic/kvim4.dtb.overlay.env                  | 
 +^  Edge2  |  5.10            |  /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays  | :::                          /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env 
 +^  Edge1   4.4              /boot/dtb/rockchip/overlays/captain                    overlays                    /boot/env.txt                                            | 
 +| :::     | :::              |  /boot/dtb/rockchip/overlays/edgev                     | :::                         | :::                                                       |
  
-<WRAP tip > +===== Device Configurations =====
-This page takes VIM3 as an example, which can be different from yours but the structure is the same. +
-</WRAP>+
  
 +<tabbox VIM1/2/3/3L/Edge1>
  
 DT-overlays ''dtbo'' directory: ''/boot/dtb/overlays/**BOARD**'' DT-overlays ''dtbo'' directory: ''/boot/dtb/overlays/**BOARD**''
 +
 +<WRAP important >
 +**BOARD** should be ''kvim1'', ''kvim2'', ''kvim3'', ''kvim3l'' or ''edgev''.
 +</WRAP>
 +
 +<WRAP tip >
 +Next example for VIM3 device, which can be different for other device, but the structure is the same.
 +</WRAP>
  
 ```shell ```shell
-khadas@Khadas:~$ ls -1  /boot/dtb/overlays/kvim3+khadas@Khadas:~$ ls -1 /boot/dtb/overlays/kvim3/
 disable-ts050.dtbo disable-ts050.dtbo
 i2c3.dtbo i2c3.dtbo
Line 39: Line 48:
 ``` ```
  
-<WRAP important > +DT-overlays configuration file:
-**BOARD** should be ''vim1'', ''vim2'', ''vim3'', ''vim3l'' or ''edge''+
-</WRAP>+
  
-DT-overlays configuration file: ''/boot/env.txt''+```txt /boot/env.txt
- +
-```txt+
 # Device Tree Overlays # Device Tree Overlays
 #   uart3           -- Enable UART3 (uart_C, GPIO Header PIN15 & PIN16) #   uart3           -- Enable UART3 (uart_C, GPIO Header PIN15 & PIN16)
Line 62: Line 67:
   * If you want to disable ''pwm_f'' you can remove ''pwm_f'' from ''overlays'' list variable   * If you want to disable ''pwm_f'' you can remove ''pwm_f'' from ''overlays'' list variable
   * If you want to enable ''onewire'', you can add ''onewire'' to ''overlays'' list variable   * If you want to enable ''onewire'', you can add ''onewire'' to ''overlays'' list variable
 +
 +<tabbox VIM3 with 5.15 kernel>
 +
 +DT-overlays ''dtbo'' directory: ''/boot/dtb/amlogic/kvim3.dtb.overlays''.
 +
 +```shell
 +khadas@Khadas:~$ ls -1 /boot/dtb/amlogic/kvim3.dtb.overlays/
 +uart3.dtbo
 +pwm_f.dtbo
 +i2c3.dtbo
 +spi1.dtbo
 +os08a10.dtbo
 +onewire.dtbo
 +disable-ts050.dtbo
 +m2x-eth.dtbo
 +otg-device.dtbo
 +```
 +
 +DT-overlays configuration file: ''/boot/dtb/amlogic/kvim3.dtb.overlay.env''.
 +
 +<tabbox VIM3L with 5.15 kernel>
 +
 +DT-overlays ''dtbo'' directory: ''/boot/dtb/amlogic/kvim3l.dtb.overlays''.
 +
 +```shell
 +khadas@Khadas:~$ ls -1 /boot/dtb/amlogic/kvim3.dtb.overlays/
 +uart3.dtbo
 +pwm_f.dtbo
 +i2c3.dtbo
 +spi1.dtbo
 +os08a10.dtbo
 +onewire.dtbo
 +disable-ts050.dtbo
 +m2x-eth.dtbo
 +otg-device.dtbo
 +```
 +
 +DT-overlays configuration file: ''/boot/dtb/amlogic/kvim3l.dtb.overlay.env''.
  
 <tabbox VIM4> <tabbox VIM4>
  
-DT-overlays ''dtbo'' directory: ''/boot/dtb/amlogic/kvim4.dtb.overlays''+DT-overlays ''dtbo'' directory: ''/boot/dtb/amlogic/kvim4.dtb.overlays''.
  
 ```shell ```shell
-khadas@Khadas:~$ ls -l1 /boot/dtb/amlogic/kvim4.dtb.overlays/ +khadas@Khadas:~$ ls -/boot/dtb/amlogic/kvim4.dtb.overlays/ 
-total 28 +ext_board.dtbo 
--rwxr-xr-x 1 root root  462 Jul  6 14:55 ext_board.dtbo +i2cm_a.dtbo 
--rwxr-xr-x 1 root root  223 Jul  6 14:55 i2cm_a.dtbo +i2cm_f.dtbo 
--rwxr-xr-x 1 root root  223 Jul  6 14:55 i2cm_f.dtbo +pwm_f.dtbo 
--rwxr-xr-x 1 root root  225 Jul  6 14:55 pwm_f.dtbo +uart_e.dtbo
--rwxr-xr-x 1 root root  225 Jul  6 14:55 uart_e.dtbo+
 ``` ```
  
Line 84: Line 126:
  
 ```shell ```shell
-khadas@Khadas:~$ ls -l1 /boot/dtb/amlogic/kvim1s.dtb.overlays/ +khadas@Khadas:~$ ls -/boot/dtb/amlogic/kvim1s.dtb.overlays/ 
-total 28 +i2cm_b.dtbo 
--rw-rw-r-- 1 root root  223 Aug 12 10:59 i2cm_b.dtbo +i2cm_e.dtbo 
--rw-rw-r-- 1 root root  223 Aug 12 10:59 i2cm_e.dtbo +pwm_f.dtbo 
--rw-rw-r-- 1 root root  345 Aug 12 10:59 pwm_f.dtbo +uart_c.dtbo
--rw-rw-r-- 1 root root  225 Aug 12 10:59 uart_c.dtbo+
 ``` ```
- 
 DT-overlays configuration file is ''/boot/dtb/amlogic/kvim1s.dtb.overlay.env''. DT-overlays configuration file is ''/boot/dtb/amlogic/kvim1s.dtb.overlay.env''.
  
 <tabbox Edge2> <tabbox Edge2>
  
-DT-overlays ''dtbo'' directory:  ''/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays'':+DT-overlays ''dtbo'' directory: ''/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays''
  
 ```shell ```shell
Line 107: Line 147:
 </tabbox> </tabbox>
  
-===== Configuration DT overlays =====+===== Configuration DT Overlays =====
  
-Need edit the DT overlays configuration file and add custom DT overlays ''dtbo'' files to special folder.+You need to edit the DT overlays configuration file and add custom DT overlays ''dtbo'' files to special folder.
  
-===== Make custom DT overlays =====+===== Make custom DT Overlays =====
  
 There are some preparations steps for DT overlays ''dtbo'' files, you can also add custom DT overlays. There are some preparations steps for DT overlays ''dtbo'' files, you can also add custom DT overlays.
  
-==== Write DT overlay source====+==== Write DT Overlay Source====
  
-Basic example:+Basic  DT overlay source example:
  
 ```dts example.dts  ```dts example.dts 
Line 134: Line 174:
 ``` ```
  
-==== Compile DT overlay source ====+==== Compile DT Overlay Source ====
  
 ```sh ```sh
Line 140: Line 180:
 ``` ```
  
-==== Copy DT overlays to special folder ====+==== Copy DT Overlays to Special Folder ====
  
 +  * VIM3 with 5.15 kernel is ''/boot/dtb/amlogic/kvim3.dtb.overlays'' 
 +  * VIM3L with 5.15 kernel is ''/boot/dtb/amlogic/kvim3l.dtb.overlays'' 
   * VIM4 is ''/boot/dtb/amlogic/kvim4.dtb.overlays''    * VIM4 is ''/boot/dtb/amlogic/kvim4.dtb.overlays'' 
   * VIM1S is ''/boot/dtb/amlogic/kvim1s.dtb.overlays''   * VIM1S is ''/boot/dtb/amlogic/kvim1s.dtb.overlays''
   * Edge2 is ''/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays''   * Edge2 is ''/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays''
-  * VIM1/2/3/3L/Edge1 is ''/boot/dtb/overlays/**BOARD**'' +  * VIM1/2/3/3L/Edge1 is ''/boot/dtb/overlays/%%*%%*BOARD%%*%%*'' 
  
 <WRAP important > <WRAP important >
-**BOARD** should be ''vim1'', ''vim2'', ''vim3'', ''vim3l'' or ''edge''+**BOARD** should be ''kvim1'', ''kvim2'', ''kvim3'', ''kvim3l'' or ''edgev''.
 </WRAP> </WRAP>
  
-==== Edit DT overlays configuration ====+==== Edit DT Overlays Configuration ====
  
 Edit list variable value inside DT overlay configuration file: Edit list variable value inside DT overlay configuration file:
    
   * VIM1/2/3/3L/Edge1 is ''/boot/env.txt''   * VIM1/2/3/3L/Edge1 is ''/boot/env.txt''
 +  * VIM3 with 5.15 kernel is ''/boot/dtb/amlogic/kvim3.dtb.overlay.env''
 +  * VIM3L with 5.15 kernel is ''/boot/dtb/amlogic/kvim3l.dtb.overlay.env''
   * VIM4 is ''/boot/dtb/amlogic/kvim4.dtb.overlay.env''   * VIM4 is ''/boot/dtb/amlogic/kvim4.dtb.overlay.env''
   * VIM1S is ''/boot/dtb/amlogic/kvim4.dtb.overlay.env''   * VIM1S is ''/boot/dtb/amlogic/kvim4.dtb.overlay.env''
Last modified: 2022/09/22 02:34 by hyphop