procv22: add support for ProCV2X

Signed-off-by: Stefan Eichenberger <eichest@gmail.com>
This commit is contained in:
Stefan Eichenberger 2021-06-01 10:35:53 +02:00
parent bbc490da1f
commit 2e5b8dcea2
5 changed files with 83 additions and 11 deletions

4
.gitmodules vendored
View File

@ -16,8 +16,8 @@
branch = dunfell branch = dunfell
[submodule "meta-netmodule-bsp"] [submodule "meta-netmodule-bsp"]
path = meta-netmodule-bsp path = meta-netmodule-bsp
url = git@gitlab.com:netmodule/yoctoproject/meta-netmodule-bsp.git url = git@gitlab.com:netmodule/procv_v2x/meta-netmodule-bsp.git
branch = develop branch = develop-procv22
[submodule "meta-netmodule-distro"] [submodule "meta-netmodule-distro"]
path = meta-netmodule-distro path = meta-netmodule-distro
url = git@gitlab.com:netmodule/yoctoproject/meta-netmodule-distro.git url = git@gitlab.com:netmodule/yoctoproject/meta-netmodule-distro.git

View File

@ -11,11 +11,14 @@ git submodule init
git submodule update git submodule update
``` ```
### Copy PFE firmware
Please make sure that you copy the PFE firmware with the right version meta-netmodule-bsp/recipes-kernel/pfe/pfe_<version> to meta-netmodule-bsp/recipes-kernel/pfe/pfe/. You need to copy the class and util firmware files. This is necessary because the firmware is currently only available under NDA.
## Selecting hardware target ## Selecting hardware target
The hardware target can be selected by sourcing the machine_select script: The hardware target can be selected by sourcing the machine_select script:
``` ```
source machine_select source machine_select
8 # Selecting NG800 9 # Selecting ProCV2.2
``` ```
## Building an image ## Building an image
@ -51,3 +54,73 @@ It can be build with the following commands:
source env.image-ostree source env.image-ostree
bitbake netmodule-linux-image-dev bitbake netmodule-linux-image-dev
``` ```
## Usage
### 1000BaseT1
The PFE driver comes up automatically. However, it does by default rely on autoneg. This doesn't seem to work with the Göpel Media Converter EasyCON. Therefore, a reset is required. Currently pfe0 shares the reset signal with eth0. That's why the following works:
```
brginup.sh enable-pfe
ifconfig eth0 down
ifconfig eth0 up
```
Now the 1000BaseT1 PHY works in default mode.
### Modem
The modem is disabled by default. However, it is possible to enable it with the following command:
```
bringup.sh enable-modem
```
### Wifi
Enable the Wifi module (make sure you enable the modem first):
```
bringup.sh enable-wifi
```
### ADCs
Read out the SPI ADCs:
```
bringup.sh read-adc
```
### IMU
To enable the IMU you can call enable-imu.sh:
```
bringup.sh enable-imu.sh
```
To communicate with the imu you can use test-imu.sh:
```
# Read/Write
bringup.sh read-write-imu /dev/spidev1.0 1 2020
# Read
bringup.sh read-write-imu /dev/spidev1.0 1
```
### Secure Element
To enable the secure elelment call enable-secure-element:
```
bringup.sh enable-secure-element
```
There is no helper for the secure element available yet. You can use spidev_test to communicate with it:
```
spidev_test --help
```
### V2X
Enable the V2X and load a firmware (make sure you enable the modem first):
```
bringup.sh enable-v2x <path to fw>
```
### GPIOS
Set gpio:
```
bringup.sh set-gpio <gpio> <value>
```
Get gpio:
```
bringup.sh get-gpio <gpio>
```

View File

@ -1,9 +1,3 @@
# am335x
SRCREV_pn-linux-netmodule = "f985f690920d0b59996c5596dfe87732d52ba67a"
SRCREV_pn-linux-netmodule-initramfs = "f985f690920d0b59996c5596dfe87732d52ba67a"
# imx8
SRCREV_pn-linux-netmodule_imx8-nmhw23 = "479b0c65b81a626c9853d02ce25e89a87274708f"
SRCREV_pn-linux-netmodule-initramfs_imx8-nmhw23 = "479b0c65b81a626c9853d02ce25e89a87274708f"
# bootloader and similar parts # bootloader and similar parts
SRCREV_pn-u-boot-imx8-nmhw23 = "5cdce0ed934bd2c536412687fda4fa8d7b8fc2c1" SRCREV_pn-u-boot-imx8-nmhw23 = "5cdce0ed934bd2c536412687fda4fa8d7b8fc2c1"
SRCREV_pn-u-boot-am335x-nrhw20-v1 = "3a9ef955c25ef83caa92eebcceeda2252df0ef34" SRCREV_pn-u-boot-am335x-nrhw20-v1 = "3a9ef955c25ef83caa92eebcceeda2252df0ef34"

View File

@ -14,9 +14,10 @@ HW23="hw23 - VCU2"
HW24="hw24 - NB800 facelift" HW24="hw24 - NB800 facelift"
HW25="hw25 - TC Router" HW25="hw25 - TC Router"
HW26="hw26 - NG800" HW26="hw26 - NG800"
ProCV2X="ProCV2X - ZF ProCV2X"
set -a set -a
select opt in "$HW16" "$HW18" "$HW20" "$HW21" "$HW23" "$HW24" "$HW25" "$HW26" select opt in "$HW16" "$HW18" "$HW20" "$HW21" "$HW23" "$HW24" "$HW25" "$HW26" "$ProCV2X"
do do
case $opt in case $opt in
"$HW16") "$HW16")
@ -51,6 +52,10 @@ do
MACHINE=am335x-hw26 MACHINE=am335x-hw26
break break
;; ;;
"$ProCV2X")
MACHINE=s32g274a-procv22
break
;;
*) echo "invalid option $opt";; *) echo "invalid option $opt";;
esac esac
done done

@ -1 +1 @@
Subproject commit d0fc60e97ab51e14fb9784f511617d54c323b7c4 Subproject commit 30851cd5459d328e8f6d705d39788a5cefb18b69