06.08.2020 Asymmetric multiprocessing
Материал из SRNS
Lipa (обсуждение | вклад) (→Device tree) |
Korogodin (обсуждение | вклад) |
||
Строка 15: | Строка 15: | ||
Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем: | Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем: | ||
<source lang="bash"> | <source lang="bash"> | ||
− | Subsystem AUTO ... -> | + | Subsystem AUTO ... -> |
Memory Settings -> | Memory Settings -> | ||
kernel base address -> | kernel base address -> |
Версия 13:36, 21 августа 2020
Содержание |
INTRO
Качаем читаем File:ug1186-zynq-openamp-gsg-6_2017.4.pdf
petalinux-config
Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем:
Subsystem AUTO ... ->
Memory Settings ->
kernel base address ->
0x1000000
Memory Settings ->
kernel base address ->
0x1000000
petalinux-config -c kernel
Убеждаемся в том, что все включено, как в даташите. Реально нужно самостоятельно включить:
Kernel Features ... ->
Memory split->
2G/2G
Memory split->
2G/2G
petalinux-config -c rootfs
Включаем нужные либы
Эта может быть и не нужна...
Location:
-> Filesystem Packages
-> libs
-> open-amp
-> Filesystem Packages
-> libs
-> open-amp
Device tree
В более старых версиях petalinux (2017.1) использовалось поле sram0, сейчас srams
/include/ "system-conf.dtsi"
/ {
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
rproc_0_reserved: rproc@e000000 {
no-map;
reg = <0xe000000 0x01000000>;
};
};
amba {
elf_ddr_0: ddr@0 {
compatible = "mmio-sram";
reg = <0xe000000 0x400000>;
};
};
remoteproc0: remoteproc@0 {
compatible = "xlnx,zynq_remoteproc";
firmware = "firmware";
vring0 = <15>;
vring1 = <14>;
srams = <&elf_ddr_0>;
};
};
/ {
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
rproc_0_reserved: rproc@e000000 {
no-map;
reg = <0xe000000 0x01000000>;
};
};
amba {
elf_ddr_0: ddr@0 {
compatible = "mmio-sram";
reg = <0xe000000 0x400000>;
};
};
remoteproc0: remoteproc@0 {
compatible = "xlnx,zynq_remoteproc";
firmware = "firmware";
vring0 = <15>;
vring1 = <14>;
srams = <&elf_ddr_0>;
};
};
Запуск
Закидываем name.elf в /lib/firmware/
Указываем путь к шашему .elf
echo name.elf > /sys/class/remoteproc/remoteproc0/firmware
Запускаем:
echo start > /sys/class/remoteproc/remoteproc0/state
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.