1. 11 Apr, 2024 2 commits
  2. 10 Apr, 2024 20 commits
  3. 01 Apr, 2024 4 commits
  4. 27 Mar, 2024 6 commits
  5. 26 Mar, 2024 6 commits
  6. 24 Mar, 2024 2 commits
    • Dragan Simic's avatar
      arm64: dts: rockchip: Add cache information to the SoC dtsi for RK356x · 8612169a
      Dragan Simic authored
      Add missing cache information to the Rockchip RK356x SoC dtsi, to allow
      the userspace, which includes lscpu(1) that uses the virtual files provided
      by the kernel under the /sys/devices/system/cpu directory, to display the
      proper RK3566 and RK3568 cache information.
      
      Adding the cache information to the RK356x SoC dtsi also makes the following
      warning message in the kernel log go away:
      
        cacheinfo: Unable to detect cache hierarchy for CPU 0
      
      The cache parameters for the RK356x dtsi were obtained and partially derived
      by hand from the cache size and layout specifications found in the following
      datasheets and technical reference manuals:
      
        - Rockchip RK3566 datasheet, version 1.1
        - Rockchip RK3568 datasheet, version 1.3
        - ARM Cortex-A55 revision r1p0 TRM, version 0100-00
        - ARM DynamIQ Shared Unit revision r4p0 TRM, version 0400-02
      
      For future reference, here's a rather detailed summary of the documentation,
      which applies to both Rockchip RK3566 and RK3568 SoCs:
      
        - All caches employ the 64-byte cache line length
        - Each Cortex-A55 core has 32 KB of L1 4-way, set-associative instruction
          cache and 32 KB of L1 4-way, set-associative data cache
        - There are no L2 caches, which are per-core and private in Cortex-A55,
          because it belongs to the ARM DynamIQ IP core lineup
        - The entire SoC has 512 KB of unified L3 16-way, set-associative cache,
          which is shared among all four Cortex-A55 CPU cores
        - Cortex-A55 cores can be configured without private per-core L2 caches,
          in which case the shared L3 cache appears to them as an L2 cache;  this
          is the case for the RK356x SoCs, so let's use "cache-level = <2>" to
          prevent the "huh, no L2 caches, but an L3 cache?" confusion among the
          users viewing the data presented to the userspace;  another option could
          be to have additional 0 KB L2 caches defined, which may be technically
          correct, but would probably be even more confusing
      Helped-by: default avatarAnand Moon <linux.amoon@gmail.com>
      Tested-By: default avatarDiederik de Haas <didi.debian@cknow.org>
      Reviewed-by: default avatarAnand Moon <linux.amoon@gmail.com>
      Signed-off-by: default avatarDragan Simic <dsimic@manjaro.org>
      Link: https://lore.kernel.org/r/2dee6dad8460b0c5f3b5da53cf55f735840efef1.1709957777.git.dsimic@manjaro.orgSigned-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      8612169a
    • Dragan Simic's avatar
      arm64: dts: rockchip: Add cache information to the SoC dtsi for RK3328 · 67a6a985
      Dragan Simic authored
      Add missing cache information to the Rockchip RK3328 SoC dtsi, to allow
      the userspace, which includes lscpu(1) that uses the virtual files provided
      by the kernel under the /sys/devices/system/cpu directory, to display the
      proper RK3328 cache information.
      
      While there, use a more self-descriptive label for the L2 cache node, which
      also makes it more consistent with other SoC dtsi files.
      
      The cache parameters for the RK3328 dtsi were obtained and partially derived
      by hand from the cache size and layout specifications found in the following
      datasheets, official vendor websites, and technical reference manuals:
      
        - Rockchip RK3328 datasheet, version 1.4
        - https://opensource.rock-chips.com/wiki_RK3328, accessed on 2024-02-28
        - ARM Cortex-A53 revision r0p3 TRM, version E
      
      For future reference, here's a brief summary of the documentation:
      
        - All caches employ the 64-byte cache line length
        - Each Cortex-A53 core has 32 KB of L1 2-way, set-associative instruction
          cache and 32 KB of L1 4-way, set-associative data cache
        - The entire SoC has 256 KB of unified L2 16-way, set-associative cache
      
      The RK3328 SoC dtsi is also used for the single RK3318-based supported board.
      Unfortunately, no datasheet is available for the RK3318, but some unofficial
      sources state that its L2 cache size is the same as RK3328's, so it's perhaps
      safe to assume the same for the L1 instruction and data cache sizes.
      Reviewed-by: default avatarAnand Moon <linux.amoon@gmail.com>
      Signed-off-by: default avatarDragan Simic <dsimic@manjaro.org>
      Link: https://lore.kernel.org/r/a681b3c6dbf7b25b1527b11cea5ae0d6d1733714.1709958234.git.dsimic@manjaro.orgSigned-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      67a6a985