【嵌入式Linux】jetson nano设备树裁剪到最简

文章详细描述了如何从官方内核中裁剪出一个简化版,支持RAMDISK功能,以及如何修改设备树以启用串口输出。通过调整board.dts和cpu.dtsi文件中的配置,包括内存、中断控制器、时钟和UART设置,实现了特定功能的支持。最后,展示了如何编译和运行裁剪后的设备树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四、裁剪到最简

官方内核中发布的复制一份改成自己用的最简的

image-20220916072052562

裁剪到支持RAMDISK

1.板子的描述

arch/arm64/boot/dts/nvidia/board.dts

//arch/arm64/boot/dts/nvidia/board.dts	
/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/mfd/max77620.h>
#include <dt-bindings/pinctrl/pinctrl-tegra.h>

#include "cpu.dtsi"

/ {
   
	model = "Google Pixel C";
	compatible = "nvidia,tegra210";

	aliases {
   
	    serial0 = &uarta;
	};
	chosen {
   
	    bootargs = "earlycon";
	    stdout-path = "serial0:115200n8";
	};
	memory {
   
	    device_type = "memory";
	    reg = <0x0 0x80000000 0x0 0xc0000000>;
	};    
	serial@70006000 {
   
	  status = "okay";
	};
	clocks {
   
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		clk32k_in: clock@0 {
   
			compatible = "fixed-clock";
			reg = <0>;
			#clock-cells = <0>;
			clock-frequency = <32768>;
		};
	};
};	
2.CPU的描述

arch/arm64/boot/dts/nvidia/cpu.dtsi

//arch/arm64/boot/dts/nvidia/cpu.dtsi
#include <dt-bindings/clock/tegra210-car.h>
#include <dt-bindings/gpio/tegra-gpio.h>
#include <dt-bindings/memory/tegra210-mc.h>
#include <dt-bindings/pinctrl/pinctrl-tegra.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/tegra124-soctherm.h>

/ {
   
	compatible = "nvidia,tegra210";
	interrupt-parent = <&lic>;
	#address-cells = <2>;
	#size-cells = <2>;

	gic: interrupt-controller@50041000 {
   
		compatible = "arm,gic-400";
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x0 0x50041000 0x0 0x1000>,
		      <0x0 0x50042000 0x0 0x2000>,
		      <0x0 0x50044000 0x0 0x2000>,
		      <0x0 0x50046000 0x0 0x2000>;
		interrupts = <GIC_PPI 9
			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
		interrupt-parent = <&gic>;
	};

	lic: interrupt-controller@60004000 {
   
		compatible = "nvidia,tegra210-ictlr";
		reg = <0x0 0x60004000 0x0 0x40>, /* primary controller */
		      <0x0 0x60004100 0x0 0x40>, /* secondary controller */
		      <0x0 0x60004200 0x0 0x40>, /* tertiary controller */
		      <0x0 0x60004300 0x0 0x40>, /* quaternary controller */
		      <0x0 0x60004400 0x0 0x40>, /* quinary controller */
		      <0x0 0x60004500 0x0 0x40>; /* senary controller */
		interrupt-controller;
		#interrupt-cells = <3>;
		interrupt-parent = <&gic>;
	};

	tegra_car: clock@60006000 {
   
		compatible = "nvidia,tegra210-car";
		reg = <0x0 0x60006000 0x0 0x1000>;
		#clock-cells = <1>;
		#reset-cells = <1>;
	};
    
#if 1
	apbdma: dma@60020000 {
   
		compatible = "nvidia,tegra210-apbdma", "nvidia,tegra148-apbdma";
		reg &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值