Как предотвратить угон периферических штифтов Beaglebone? - PullRequest
0 голосов
/ 12 мая 2018

Я настроил дерево устройств моего биглебона.Некоторые встроенные периферийные устройства, такие как I2C, UART и т. Д., И соответствующие контакты на заголовках P8 и P9 включены, а некоторые другие отключены.

Чтобы пользователи не могли захватывать контакты, занятые периферийными устройствами, мне нужнозапретить пользователю экспорт, экспорт, изменение направления и стоимости выводов, используемых периферийными устройствами.Другими словами, если пользователь пытается выполнить

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

, это должно привести к ошибке (Когда оверлеты uboot включены в /boot/uENV.txt, установив

enable_uboot_overlays=1

в указанном файле икомментирование

disable_uboot_overlay_video = 1

экспорт выводов LCD приводит к такой ошибке)

Файл .dts, написанный мной, однако, разрешает периферию I2C1, но позволяет пользователю изменять направление и значение на SDA и SCLpins.

Я добавил узлы в файл 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, какой-то код должен быть добавлен?Заранее спасибо

1 Ответ

0 голосов
/ 23 мая 2018

Теперь я знаю, как выполнить задание!В модуле ядра, который я написал:

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

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

загрузка этого LKM предотвращает экспорт этих выводов пользователем.

...