Skip to content

PD25.x.x migration: Serial port aliases and ethernet interface renaming #7

@rckstrh

Description

@rckstrh

Hello,

with the current state of the layer (assuming one uses meta-phytec@b4b5bda2) the "reference" bundle/image from this layer, phyverso-evcs-headless-bundle/phyverso-evcs-image, will not have it's serial ports under the /dev/ttyS* that it has in previous versions and also the ethernet interfaces corresponding to the two ethernet ports on X30/X31 have changed names. This will ultimately break a lot of things down the line when updating regarding MCU communication/EVerest configurations, ethernet network configs regarding ethernet-based devices like the powermeter included in the PHYTEC-EVCS Cube DC PoC.

What I have seen so far, not claiming that that is all that has changed, is that:

  • eth0 -> end0
  • eth1 -> end1
  • serial aliases from the k3-am625-phyverso-evcs.dts don't seem to apply the way they did before. EVerest customer setups and configs assume that one can talk to the MCU on /dev/ttyS6, RS485 ports (X34/X35) are available on /dev/ttyS4 and /dev/ttyS5; so not maintaining consistency here would ultimately break all configs on updating to the PD25.x.x-based meta-phyverso-evcs revisions.

What would be desired (probably):

Keep full compatibility regarding interface and device names between PD24.x.x and PD25.x.x based revisions of this layer to not break stuff on the customer side interfacing on-board and external hardware just by updating to the newer revision.

How to reproduce:

  1. setup a normal PD25.1.0 based build for a lyra board using phyLinux tool
  2. manually check out meta-phytec@b4b5bda2
  3. clone meta-phyverso-evcs and meta-lumissil-greenphy into sources/ directory, add them to bblayers.conf accordingly
  4. change local.conf machine to phyverso-evcs-am62xx-1 , distro to ampliphy-rauc
  5. build the phyverso-evcs-headless-bundle, rauc install it on the target (maybe also update the bootloader manually if not already done before)

Outputs from target regarding ethernet interfaces:

root@phyverso-evcs-am62xx-1:~# ifconfig 
end0      Link encap:Ethernet  HWaddr 28:B5:E8:E2:57:FA  
          inet addr:192.168.3.11  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::2ab5:e8ff:fee2:57fa/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:294 errors:0 dropped:0 overruns:0 frame:0
          TX packets:746 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:24476 (23.9 KiB)  TX bytes:54179 (52.9 KiB)

end1      Link encap:Ethernet  HWaddr A6:33:CE:F1:4D:44  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
[...]

Regarding serials:

root@phyverso-evcs-am62xx-1:~# ll /dev/ttyS*
crw-rw----    1 root     dialout     4,  64 May 29  2025 /dev/ttyS0
crw-rw----    1 root     dialout     4,  65 May 29  2025 /dev/ttyS1
crw-------    1 root     tty         4,  66 Feb 25 15:58 /dev/ttyS2
crw-rw----    1 root     dialout     4,  67 May 29  2025 /dev/ttyS3

Although looking at the current loaded devicetree and grepping for aliases shows them properly:

root@phyverso-evcs-am62xx-1:~# dtc -I fs /sys/firmware/devicetree/base | grep aliases -A 20
[...]
        aliases {
                ethernet0 = "/bus@f0000/ethernet@8000000/ethernet-ports/port@1";
                gpio0 = "/bus@f0000/gpio@600000";
                spi0 = "/bus@f0000/bus@fc00000/spi@fc40000";
                serial5 = "/bus@f0000/serial@2830000";
                usb1 = "/bus@f0000/dwc3-usb@f910000/usb@31100000";
                rtc0 = "/bus@f0000/i2c@20000000/rtc@52";
                ethernet1 = "/bus@f0000/ethernet@8000000/ethernet-ports/port@2";
                gpio1 = "/bus@f0000/gpio@601000";
                serial6 = "/bus@f0000/bus@b00000/target-module@2b300050/serial@0";
                i2c0 = "/bus@f0000/i2c@20000000";
                mmc2 = "/bus@f0000/mmc@fa20000";
                serial4 = "/bus@f0000/serial@2820000";
                mmc0 = "/bus@f0000/mmc@fa10000";
                usb0 = "/bus@f0000/dwc3-usb@f900000/usb@31000000";
                serial2 = "/bus@f0000/serial@2800000";
                rtc1 = "/bus@f0000/bus@b00000/rtc@2b1f0000";
                gpio2 = "/bus@f0000/bus@4000000/gpio@4201000";
        };

Any chance you can have a look at this? Of course I will also investigate it deeper, but I guess you may have deeper insights and can be faster on this matter.

Thank you very much in advance and best regards!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions