如何防止Beaglebone外围引脚的劫持

问题描述 投票:0回答:1

我已经定制了我的beaglebone的设备树。某些片上外设(如I2C,UART等)以及P8和P9接头上的相应引脚已启用,而其他一些则被禁用。

为了防止用户劫持外围设备占用的引脚,我需要防止用户导出,导出,改变外设使用的引脚的方向和值。换句话说,如果用户试图执行

debian@beaglebone:~$ sudo echo 4 > /sys/class/gpio/export

应该导致错误(通过设置在/boot/uENV.txt中启用uboot叠加时

enable_uboot_overlays=1

在提到的文件和评论中

disable_uboot_overlay_video = 1

导出LCD引脚会导致这样的错误)

然而,我编写的.dts文件启用了I2C1外设,但允许用户更改SDA和SCL引脚上的方向和值。

我将节点添加到am335x-boneblack.dts文件中,如下所示:节点

pinmux_i2c1_pins {
    pinctrl-single,pins = <0x158 0x32 0x15c 0x32>;
    linux,phandle = <0xdd>;
    phandle = <0xdd>;
};

被添加到“pinmux @ 800”节点,

i2c@4802a000 {
    compatible = "ti,omap4-i2c";
    #address-cells = <0x1>;
    #size-cells = <0x0>;
    ti,hwmods = "i2c2";
    reg = <0x4802a000 0x1000>;
    interrupts = <0x47>;
    status = "okay";
    pinctrl-names = "default";          
    pinctrl-0 = <0xdd>;
    clock-frequency = <100000>;
    linux,phandle = <0xa0>;
    phandle = <0xa0>;           
    };

被添加到“ocp”节点,最后

i2c1_pins ="/ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c1_pins";

被添加到“__symbols__”节点。

我应该更改uboot还是.dts文件中应该添加一些代码?提前致谢

debian embedded-linux beagleboneblack gpio u-boot
1个回答
0
投票

现在我知道如何完成任务!在一个内核模块中我写道:

...
#include <linux/gpio.h>

gpio_request(4);     // for requesting GPIO0_4
...

加载此LKM可防止用户导出这些引脚。

© www.soinside.com 2019 - 2024. All rights reserved.