Hi Niklas, Thanks for the feedback. > Subject: Re: [PATCH v3 3/3] serial: 8250_em: Add serial_out() to struct > serial8250_em_hw_info > > Hi Biju, > > On 2023-02-13 13:01:06 +0000, Biju Das wrote: > > Please get files from here > > > > Thanks for the branch. > > It boots and the serial console appears to be functioning as expected. > Is there anything in particular you like me to test? I attach the full boot > log in case it's useful for you. Cool. It should be OK. Looks like RZ/V2M changes applies to EMMA mobile as well. If you have cables, you could test {ttyS0, ttyS2, ttyS2} at {9600, 19200, 38400, 57600, 115200} bps If it supports flow control, check that as well. Eg: stty -F /dev/ttyS0 115200 stty -F /dev/ttyS0 115200 crtscts Open a teraterm and do below read/write testing cat /dev/ttyS0 --> for reading echo test > /dev/ttyS0 --> for writing or Write a serial test program for read/write test on above baud rates. If the cable is not available, you could also verify register settings To check whether it matches with EMMA hardware manual. dump() { devmem2 0xA4040000 | grep Read devmem2 0xA4040004 | grep Read devmem2 0xA4040008 | grep Read devmem2 0xA404000C | grep Read devmem2 0xA4040010 | grep Read devmem2 0xA4040014 | grep Read devmem2 0xA4040018 | grep Read devmem2 0xA404001C | grep Read devmem2 0xA4040020 | grep Read devmem2 0xA4040024 | grep Read # DLAB(LCR[7]) 0x1B devmem2 0xA4040028 | grep Read # DLAB(LCR[7]) 0x1B devmem2 0xA404002C | grep Read devmem2 0xA4040030 | grep Read devmem2 0xA4040034 | grep Read } dump Cheers, Biju > > [ 0.000000] Booting Linux on physical CPU 0x0 > [ 0.000000] Linux version 6.2.0-rc7-next-20230210-12179-g91bd68019b4b > (neg@sleipner) (arm-linux-gnueabihf-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) > 2.35.1) #2 SMP Mon Feb 13 15:02:12 CET 2023 > [ 0.000000] CPU: ARMv7 Processor [411fc092] revision 2 (ARMv7), > cr=10c5387d > [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing > instruction cache > [ 0.000000] OF: fdt: Machine model: EMEV2 KZM9D Board > [ 0.000000] printk: debug: ignoring loglevel setting. > [ 0.000000] Memory policy: Data cache writealloc > [ 0.000000] cma: Failed to reserve 128 MiB > [ 0.000000] Zone ranges: > [ 0.000000] Normal [mem 0x0000000040000000-0x0000000047ffffff] > [ 0.000000] HighMem empty > [ 0.000000] Movable zone start for each node > [ 0.000000] Early memory node ranges > [ 0.000000] node 0: [mem 0x0000000040000000-0x0000000047ffffff] > [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000- > 0x0000000047ffffff] > [ 0.000000] percpu: Embedded 14 pages/cpu s33620 r0 d23724 u57344 > [ 0.000000] pcpu-alloc: s33620 r0 d23724 u57344 alloc=14*4096 > [ 0.000000] pcpu-alloc: [0] 0 [0] 1 > [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 32512 > [ 0.000000] Kernel command line: ignore_loglevel rw root=/dev/nfs ip=on > [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 > bytes, linear) > [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, > linear) > [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off > [ 0.000000] Memory: 116068K/131072K available (8192K kernel code, 1150K > rwdata, 2596K rodata, 1024K init, 251K bss, 15004K reserved, 0K cma- > reserved, 0K highmem) > [ 0.000000] trace event string verifier disabled > [ 0.000000] rcu: Hierarchical RCU implementation. > [ 0.000000] rcu: RCU event tracing is enabled. > [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to > nr_cpu_ids=2. > [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 > jiffies. > [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 > [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 > [ 0.000000] GIC: enabling workaround for broken byte access > [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on > contention. > [ 0.000000] timer_probe: no matching timers found > [ 0.000000] Console: colour dummy device 80x30 > [ 0.000000] printk: console [tty0] enabled > [ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps > every 21474836475000000ns > [ 0.000000] Calibrating delay loop (skipped) preset value.. 1066.00 > BogoMIPS (lpj=5330000) > [ 0.000000] pid_max: default: 32768 minimum: 301 > [ 0.000000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, > linear) > [ 0.000000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 > bytes, linear) > [ 0.000000] CPU: Testing write buffer coherency: ok > [ 0.000000] CPU0: Spectre v2: using BPIALL workaround > [ 0.000000] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 > [ 0.000000] Setting up static identity map for 0x40100000 - 0x40100060 > [ 0.000000] rcu: Hierarchical SRCU implementation. > [ 0.000000] rcu: Max phase no-delay instances is 1000. > [ 0.000000] smp: Bringing up secondary CPUs ... > [ 0.000000] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 > [ 0.000000] CPU1: Spectre v2: using BPIALL workaround > [ 0.000000] smp: Brought up 1 node, 2 CPUs > [ 0.000000] SMP: Total of 2 processors activated (2132.00 BogoMIPS). > [ 0.000000] CPU: All CPU(s) started in SVC mode. > [ 0.000000] devtmpfs: initialized > [ 0.000000] VFP support v0.3: implementor 41 architecture 3 part 30 > variant 9 rev 1 > [ 0.000000] clocksource: jiffies: mask: 0xffffffff max_cycles: > 0xffffffff, max_idle_ns: 19112604462750000 ns > [ 0.000000] futex hash table entries: 512 (order: 3, 32768 bytes, linear) > [ 0.000000] pinctrl core: initialized pinctrl subsystem > [ 0.000000] NET: Registered PF_NETLINK/PF_ROUTE protocol family > [ 0.000000] DMA: preallocated 256 KiB pool for atomic coherent > allocations > [ 0.000000] thermal_sys: Registered thermal governor 'step_wise' > [ 0.000000] No ATAGs? > [ 0.000000] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 > watchpoint registers. > [ 0.000000] hw-breakpoint: maximum watchpoint size is 4 bytes. > [ 0.000000] sh-pfc e0140200.pinctrl: emev2_pfc support registered > [ 0.000000] SCSI subsystem initialized > [ 0.000000] libata version 3.00 loaded. > [ 0.000000] usbcore: registered new interface driver usbfs > [ 0.000000] usbcore: registered new interface driver hub > [ 0.000000] usbcore: registered new device driver usb > [ 0.000000] mc: Linux media interface: v0.10 > [ 0.000000] videodev: Linux video capture interface: v2.00 > [ 0.000000] pps_core: LinuxPPS API ver. 1 registered > [ 0.000000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo > Giometti <giometti@xxxxxxxx> > [ 0.000000] PTP clock support registered > [ 0.000000] em_sti e0180000.timer: used for clock events > [ 0.000000] em_sti e0180000.timer: used for oneshot clock events > [ 0.000000] em_sti e0180000.timer: used as clock source > [ 0.000000] clocksource: e0180000.timer: mask: 0xffffffffffff max_cycles: > 0x1ef4687b1, max_idle_ns: 112843571739654 ns > [ 0.000000] Advanced Linux Sound Architecture Driver Initialized. > [ 0.000000] vgaarb: loaded > [ 0.890000] clocksource: Switched to clocksource e0180000.timer > [ 0.900000] Clockevents: could not switch to one-shot mode: > [ 0.900000] Clockevents: could not switch to one-shot mode: dummy_timer > is not functional. > [ 0.900000] dummy_timer is not functional. > [ 0.910000] NET: Registered PF_INET protocol family > [ 0.910000] IP idents hash table entries: 2048 (order: 2, 16384 bytes, > linear) > [ 0.910000] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, > 4096 bytes, linear) > [ 0.910000] Table-perturb hash table entries: 65536 (order: 6, 262144 > bytes, linear) > [ 0.910000] TCP established hash table entries: 1024 (order: 0, 4096 > bytes, linear) > [ 0.910000] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, > linear) > [ 0.910000] TCP: Hash tables configured (established 1024 bind 1024) > [ 0.910000] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) > [ 0.910000] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, > linear) > [ 0.910000] NET: Registered PF_UNIX/PF_LOCAL protocol family > [ 0.910000] RPC: Registered named UNIX socket transport module. > [ 0.910000] RPC: Registered udp transport module. > [ 0.910000] RPC: Registered tcp transport module. > [ 0.910000] RPC: Registered tcp NFSv4.1 backchannel transport module. > [ 0.910000] PCI: CLS 0 bytes, default 64 > [ 0.950000] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 > counters available > [ 0.950000] workingset: timestamp_bits=30 max_order=15 bucket_order=0 > [ 0.950000] NFS: Registering the id_resolver key type > [ 0.950000] Key type id_resolver registered > [ 0.950000] Key type id_legacy registered > [ 0.950000] nfs4filelayout_init: NFSv4 File Layout Driver Registering... > [ 0.950000] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver > Registering... > [ 0.960000] Block layer SCSI generic (bsg) driver version 0.4 loaded > (major 246) > [ 0.960000] io scheduler mq-deadline registered > [ 0.960000] io scheduler kyber registered > [ 0.960000] io scheduler bfq registered > [ 0.970000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled > [ 0.970000] e1020000.serial: ttyS0 at MMIO 0xe1020000 (irq = 37, > base_baud = 796444) is a TI16750 > [ 0.970000] e1030000.serial: ttyS1 at MMIO 0xe1030000 (irq = 38, > base_baud = 7168000) is a TI16750 > [ 0.970000] printk: console [ttyS1] enabled > [ 1.660000] e1040000.serial: ttyS2 at MMIO 0xe1040000 (irq = 39, > base_baud = 14336000) is a TI16750 > [ 1.670000] e1050000.serial: ttyS3 at MMIO 0xe1050000 (irq = 40, > base_baud = 2389333) is a TI16750 > [ 1.680000] SuperH (H)SCI(F) driver initialized > [ 1.700000] CAN device driver interface > [ 1.760000] smsc911x 20000000.ethernet eth0: MAC Address: > 00:0a:a3:02:12:92 > [ 1.770000] UDC core: g_ether: couldn't find an available UDC > [ 1.770000] i2c_dev: i2c /dev entries driver > [ 1.780000] em-i2c e0070000.i2c: Added i2c controller 0, irq 42 > [ 1.790000] em-i2c e10a0000.i2c: Added i2c controller 1, irq 43 > [ 1.800000] cpu cpu0: OPP table can't be empty > [ 1.800000] usbcore: registered new interface driver usbhid > [ 1.810000] usbhid: USB HID core driver > [ 1.820000] NET: Registered PF_INET6 protocol family > [ 1.820000] Segment Routing with IPv6 > [ 1.830000] In-situ OAM (IOAM) with IPv6 > [ 1.830000] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver > [ 1.840000] NET: Registered PF_PACKET protocol family > [ 1.840000] can: controller area network core > [ 1.850000] NET: Registered PF_CAN protocol family > [ 1.850000] can: raw protocol > [ 1.860000] can: broadcast manager protocol > [ 1.860000] can: netlink gateway - max_hops=1 > [ 1.870000] Key type dns_resolver registered > [ 1.870000] Registering SWP/SWPB emulation handler > [ 1.900000] input: gpio_keys as /devices/platform/gpio_keys/input/input0 > [ 1.960000] SMSC LAN8700 20000000.ethernet-ffffffff:01: attached PHY > driver (mii_bus:phy_addr=20000000.ethernet-ffffffff:01, irq=POLL) > [ 2.000000] smsc911x 20000000.ethernet eth0: SMSC911x/921x identified at > 0xc8920000, IRQ: 41 > [ 4.080000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready > [ 4.130000] Sending DHCP requests ., OK > [ 4.170000] IP-Config: Got DHCP answer from 10.0.1.1, my address is > 10.0.1.2 > [ 4.180000] IP-Config: Complete: > [ 4.180000] device=eth0, hwaddr=00:0a:a3:02:12:92, ipaddr=10.0.1.2, > mask=255.255.255.0, gw=10.0.1.1 > [ 4.190000] host=10.0.1.2, domain=dyn.berto.se, nis-domain=(none) > [ 4.200000] bootserver=10.0.1.1, rootserver=10.0.1.1, > rootpath=/srv/nfs4/arch,tcp,v3 > [ 4.200000] nameserver0=192.168.20.1 > [ 4.210000] ALSA device list: > [ 4.210000] No soundcards found. > [ 4.240000] VFS: Mounted root (nfs filesystem) on device 0:15. > [ 4.240000] devtmpfs: mounted > [ 4.250000] Freeing unused kernel image (initmem) memory: 1024K > [ 4.290000] Run /sbin/init as init process > [ 4.290000] with arguments: > [ 4.290000] /sbin/init > [ 4.300000] with environment: > [ 4.300000] HOME=/ > [ 4.300000] TERM=linux > [ 5.980000] systemd[1]: System time before build time, advancing clock. > [ 6.030000] systemd[1]: Failed to find module 'autofs4' > [ 6.160000] systemd[1]: systemd 252.5-1-arch running in system mode (+PAM > +AUDIT -SELINUX -APPARMOR -IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL > +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP > +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB > +ZSTD +BPF_FRAMEWORK +XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified) > [ 6.190000] systemd[1]: Detected architecture arm. > [ 6.260000] systemd[1]: Hostname set to <arm>. > [ 6.510000] systemd[1]: bpf-lsm: BPF LSM hook not enabled in the kernel, > BPF LSM not supported > [ 6.520000] memfd_create() without MFD_EXEC nor MFD_NOEXEC_SEAL, pid=1 > 'systemd' > [ 8.810000] systemd[1]: Queued start job for default target Graphical > Interface. > [ 8.830000] systemd[1]: Created slice Slice /system/getty. > [ 8.870000] systemd[1]: Created slice Slice /system/modprobe. > [ 8.910000] systemd[1]: Created slice Slice /system/serial-getty. > [ 8.950000] systemd[1]: Created slice User and Session Slice. > [ 8.990000] systemd[1]: Started Dispatch Password Requests to Console > Directory Watch. > [ 9.030000] systemd[1]: Started Forward Password Requests to Wall > Directory Watch. > [ 9.070000] systemd[1]: Arbitrary Executable File Formats File System > Automount Point was skipped because of an unmet condition check > (ConditionPathExists=/proc/sys/fs/binfmt_misc). > [ 9.080000] systemd[1]: Reached target Local Encrypted Volumes. > [ 9.120000] systemd[1]: Reached target Local Integrity Protected Volumes. > [ 9.160000] systemd[1]: Reached target Network is Online. > [ 9.200000] systemd[1]: Reached target Path Units. > [ 9.240000] systemd[1]: Reached target Slice Units. > [ 9.280000] systemd[1]: Reached target Swaps. > [ 9.320000] systemd[1]: Reached target Local Verity Protected Volumes. > [ 9.360000] systemd[1]: Listening on Device-mapper event daemon FIFOs. > [ 9.420000] systemd[1]: Listening on Process Core Dump Socket. > [ 9.460000] systemd[1]: Journal Audit Socket was skipped because of an > unmet condition check (ConditionSecurity=audit). > [ 9.470000] systemd[1]: Listening on Journal Socket (/dev/log). > [ 9.510000] systemd[1]: Listening on Journal Socket. > [ 9.550000] systemd[1]: Listening on udev Control Socket. > [ 9.590000] systemd[1]: Listening on udev Kernel Socket. > [ 9.630000] systemd[1]: Huge Pages File System was skipped because of an > unmet condition check (ConditionPathExists=/sys/kernel/mm/hugepages). > [ 9.640000] systemd[1]: POSIX Message Queue File System was skipped > because of an unmet condition check > (ConditionPathExists=/proc/sys/fs/mqueue). > [ 9.710000] systemd[1]: Mounting /root/shared... > [ 9.750000] systemd[1]: Mounting Kernel Debug File System... > [ 9.790000] systemd[1]: Mounting Kernel Trace File System... > [ 9.850000] systemd[1]: Mounting Temporary Directory /tmp... > [ 9.900000] systemd[1]: Create List of Static Device Nodes was skipped > because of an unmet condition check > (ConditionFileNotEmpty=/lib/modules/6.2.0-rc7-next-20230210-12179- > g91bd68019b4b/modules.devname). > [ 9.960000] systemd[1]: Starting Load Kernel Module configfs... > [ 9.990000] systemd[1]: Starting Load Kernel Module drm... > [ 10.040000] systemd[1]: Starting Load Kernel Module fuse... > [ 10.120000] systemd[1]: Load Kernel Modules was skipped because no > trigger condition checks were met. > [ 10.210000] systemd[1]: Starting Remount Root and Kernel File Systems... > [ 10.250000] systemd[1]: Repartition Root Disk was skipped because no > trigger condition checks were met. > [ 10.270000] systemd[1]: Starting Apply Kernel Variables... > [ 10.360000] systemd[1]: Starting Coldplug All udev Devices... > [ 10.440000] systemd[1]: Mounted Kernel Debug File System. > [ 10.480000] systemd[1]: Mounted Kernel Trace File System. > [ 10.510000] systemd[1]: Mounted Temporary Directory /tmp. > [ 10.560000] systemd[1]: modprobe@configfs.service: Deactivated > successfully. > [ 10.570000] systemd[1]: Finished Load Kernel Module configfs. > [ 10.640000] systemd[1]: modprobe@drm.service: Deactivated successfully. > [ 10.660000] systemd[1]: Finished Load Kernel Module drm. > [ 10.680000] systemd[1]: modprobe@fuse.service: Deactivated successfully. > [ 10.690000] systemd[1]: Finished Load Kernel Module fuse. > [ 10.730000] systemd[1]: Finished Remount Root and Kernel File Systems. > [ 10.770000] systemd[1]: Finished Apply Kernel Variables. > [ 10.810000] systemd[1]: FUSE Control File System was skipped because of > an unmet condition check (ConditionPathExists=/sys/fs/fuse/connections). > [ 10.880000] systemd[1]: Mounting Kernel Configuration File System... > [ 10.920000] systemd[1]: First Boot Wizard was skipped because of an unmet > condition check (ConditionFirstBoot=yes). > [ 10.930000] systemd[1]: Rebuild Hardware Database was skipped because of > an unmet condition check (ConditionNeedsUpdate=/etc). > [ 10.980000] systemd[1]: Starting Load/Save Random Seed... > [ 11.010000] systemd[1]: Create System Users was skipped because no > trigger condition checks were met. > [ 11.030000] systemd[1]: Starting Create Static Device Nodes in /dev... > [ 11.100000] systemd[1]: Mounted Kernel Configuration File System. > [ 11.500000] systemd[1]: Reached target Host and Network Name Lookups. > [ 11.540000] systemd[1]: Listening on RPCbind Server Activation Socket. > [ 11.580000] systemd[1]: Reached target RPC Port Mapper. > [ 11.650000] systemd[1]: Starting NFS status monitor for NFSv2/3 > locking.... > [ 11.830000] systemd[1]: Finished Coldplug All udev Devices. > [ 11.930000] systemd[1]: Starting RPC Bind... > [ 12.270000] systemd[1]: Finished Create Static Device Nodes in /dev. > [ 12.310000] systemd[1]: Reached target Preparation for Local File > Systems. > [ 12.350000] systemd[1]: Virtual Machine and Container Storage > (Compatibility) was skipped because of an unmet condition check > (ConditionPathExists=/var/lib/machines.raw). > [ 12.370000] systemd[1]: Reached target Local File Systems. > [ 12.410000] systemd[1]: Entropy Daemon based on the HAVEGE algorithm was > skipped because of an unmet condition check (ConditionKernelVersion=<5.6). > [ 12.430000] systemd[1]: Rebuild Dynamic Linker Cache was skipped because > no trigger condition checks were met. > [ 12.490000] systemd[1]: Starting Notify NFS peers of a restart... > [ 12.540000] systemd[1]: Set Up Additional Binary Formats was skipped > because no trigger condition checks were met. > [ 12.550000] systemd[1]: systemd-journald.service: unit configures an IP > firewall, but the local system does not support BPF/cgroup firewalling. > [ 12.570000] systemd[1]: (This warning is only shown for the first unit > using IP firewalling.) > [ 12.620000] systemd[1]: Starting Journal Service... > [ 12.690000] systemd[1]: Starting Rule-based Manager for Device Events and > Files... > [ 12.750000] systemd[1]: Started RPC Bind. > [ 12.800000] systemd[1]: Started Notify NFS peers of a restart. > [ 12.870000] systemd[1]: Started NFS status monitor for NFSv2/3 locking.. > [ 13.180000] systemd[1]: Started Journal Service. > [ 17.010000] systemd-journald[86]: Received client request to flush > runtime journal. > [ 21.390000] random: dbus-daemon: uninitialized urandom read (12 bytes > read) > [ 22.200000] random: dbus-daemon: uninitialized urandom read (12 bytes > read) > [ 51.370000] random: crng init done > > -- > Kind Regards, > Niklas Söderlund