
Thanks Neddy!NeddySeagoon wrote:RayDude,
There is a difference between 'boot from' and 'boot to'
Boot from places a requirement on the firmware to be able to read from the desired device.
Its game over if the firmware does not do what you want.
I read 'boot to' as a requirement on the kernel to mount root from the desired device.
That needs kernel and possibly initrd support. That's much easier as its mostly under your control.
There is a half way house too. Consider a boot leader that keeps the firmware happy but all it does is load another boot loader that is easier to manipulate.
e.g. early Raspberry Pis can only boot from the SD card but root can be anywhere the kernel can see. USB, NFS, even the SD card.
Code: Select all
ZynqMP> run bootcmd_scsi0
Device 0: (1:0) Vendor: ATA Prod.: Samsung SSD 850 Rev: EMT0
Type: Hard Disk
Capacity: 238475.1 MB = 232.8 GB (488397168 x 512)
... is now current device
Scanning scsi 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
1: Gentoo
Retrieving file: /extlinux/vmlinuz
append: quiet root=/dev/sda3 rw rootwait rootfstype=ext4 console=ttyPS0,115200n8
Retrieving file: /extlinux/zynqmp.dtb
## Flattened Device Tree blob at 40000000
Booting using the fdt blob at 0x40000000
Loading Device Tree to 000000007bbef000, end 000000007bbf8952 ... OK
Starting kernel ...
[ 0.297032] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.256590] zynqmp-pinctrl firmware:zynqmp-firmware:pinctrl: set mux failed for pin 24
[ 1.264554] xilinx_can ff070000.can: Error applying setting, reverse things back
[ 1.272000] domain6: domain6 request failed for node 48: -13
[ 1.277745] xilinx_can ff070000.can: error -EACCES: failed to add to PM domain domain6
[ 1.315642] pca953x 0-0020: failed writing register
INIT: version 3.06 booting
OpenRC 0.46 is starting up Gentoo Linux (aarch64)
* Mounting /proc ...
[ ok ]
* Mounting /run ...
* /run/openrc: creating directory
* /run/lock: creating directory
* /run/lock: correcting owner
* Caching service dependencies ...
[ ok ]
* Mounting /sys ...
[ ok ]
* Mounting debug filesystem ...
[ ok ]
* Mounting config filesystem ...
[ ok ]
* Mounting fuse control filesystem ...
[ ok ]
* Mounting cgroup filesystem ...
[ ok ]
* Remounting devtmpfs on /dev ...
[ ok ]
* Mounting /dev/mqueue ...
[ ok ]
* Mounting /dev/pts ...
[ ok ]
* Mounting /dev/shm ...
[ ok ]
* Creating list of required static device nodes for the current kernel ...
[ ok ]
* Create Static Devices Nodes in /dev ...
[ ok ]
* Starting udev ...
[ ok ]
* Generating a rule to create a /dev/root symlink ...
[ ok ]
* Populating /dev with existing devices through uevents ...
[ ok ]
* Setting system clock using the hardware clock [UTC] ...
[ ok ]
* Loading custom binary format handlers ...
[ ok ]
* Checking local filesystems ...
fsck.fat 4.2 (2021-01-31)
There are differences between boot sector and its backup.
This is mostly harmless. Differences: (offset:original/backup)
65:01/00
Not automatically fixing this.
Label '' stored in boot sector is not valid.
Auto-removing label from boot sector.
Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
Automatically removing dirty bit.
*** Filesystem was changed ***
Writing changes.
/dev/sda1: 6 files, 6457/127749 clusters
* Filesystems repaired
[ !! ]
* Remounting filesystems ...
[ ok ]
* Updating /etc/mtab ...
* Creating mtab symbolic link
[ ok ]
* Activating swap devices ...
swapon: /dev/sda2: swap format pagesize does not match. (Use --fixpgsz to reinitialize it.)
swapon: /dev/sda2: swapon failed: Invalid argument
[ ok ]
* Mounting local filesystems ...
[ ok ]
* Configuring kernel parameters ...
[ ok ]
* Creating user login records ...
[ ok ]
* Wiping /tmp directory ...
[ ok ]
* Setting hostname to ultrazed from /etc/hostname ...
[ ok ]
* Setting terminal encoding [UTF-8] ...
[ ok ]
* Setting keyboard mode [UTF-8] ...
[ ok ]
* Loading key mappings [us] ...
[ ok ]
* Bringing up network interface lo ...
[ ok ]
* Saving key mapping ...
[ ok ]
* Saving terminal encoding ...
[ ok ]
* Seeding random number generator ...
* Saving 256 bits of non-creditable seed for next boot
[ ok ]
* Create Volatile Files and Directories ...
[ ok ]
INIT: Entering runlevel: 3
* Checking your configfile (/etc/syslog-ng/syslog-ng.conf) ...
[ ok ]
* /var/lib/syslog-ng: correcting mode
* Starting syslog-ng ...
[ ok ]
* Starting cronie ...
[ ok ]
* Starting DHCP Client Daemon ...
[ ok ]
* Mounting network filesystems ...
[ ok ]
* Starting local ...
[ ok ]
INIT: Id "f0" respawning too fast: disabled for 5 minutes
Thanks! Here's an update:NeddySeagoon wrote:RayDude,
You have a bit missing from the kernel but you are getting there.
How is the keyboard connected?
What kernel version are you using?

I'll do that. Thanks for the link.NeddySeagoon wrote:RayDude,
Moved from Other Things Gentoo to Gentoo on ARM.
Its one of these.
When that Xilinx SOC works, add it to the ARM hardware list.
Maybe donate a Wiki page too, in case you need to do it again
Code: Select all
[ 1.296669] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed
[ 1.297689] zynqmp-display fd4a0000.display: vtc bridge property not present
[ 1.300325] xilinx-dp-snd-codec fd4a0000.display:zynqmp_dp_snd_codec0: Xilinx DisplayPort Sound Codec probed
[ 1.300583] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed
[ 1.300825] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed
[ 1.301872] xilinx-dp-snd-card fd4a0000.display:zynqmp_dp_snd_card: Xilinx DisplayPort Sound Card probed
[ 1.301976] OF: graph: no port node found in /axi/display@fd4a0000
[ 1.308521] xlnx-drm xlnx-drm.0: bound fd4a0000.display (ops 0xffff800008f352a8)
[ 1.448308] Console: switching to colour frame buffer device 240x67
[ 1.473733] zynqmp-display fd4a0000.display: [drm] fb0: xlnxdrmfb frame buffer device
[ 1.473993] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.display on minor 0
[ 1.474022] zynqmp-display fd4a0000.display: ZynqMP DisplayPort Subsystem driver probed

Code: Select all
[ 1.473733] zynqmp-display fd4a0000.display: [drm] fb0: xlnxdrmfb frame buffer deviceThanks so much Neddy.NeddySeagoon wrote:RayDude,
Its using xlnxdrmfb for the framebuffer.Code: Select all
[ 1.473733] zynqmp-display fd4a0000.display: [drm] fb0: xlnxdrmfb frame buffer device
It probably needs VIDEO_CARDS=" fbdev" unless there is an out of tree xlnxdrmfb dliver for Xorg.
Putting xlnxdrmfb into search engine finds a few hits. Some are Xilinx too.
VIDEO_CARDS will not be used unless you plan to use Xorg.
When you built the gentoo kernel, where did you get the *dtb file from?
It should be built with the kernel.
There is a wide selection of Device Tree Sources in /usr/src/linux-6.2.5-gentoo/arch/arm64/boot/dts/xilinx/
If the PCIe and USB were missing from that, they would not work, or the address etc were wrong ...
There is lots in the kernel for xilinx PCI and USB. What hardware do you have and what USB/PCI chip sets do your need to drive?
The concept of 'chip set' includes something like the Desgnware2/3 IP that may be built into the FPGA, so you cannot read the numbers on the chips.
Code: Select all
ld: Unexpected GOT/PLT entries detected!
ld: Unexpected run-time procedure linkages detected!
ld: ID map text too big or misaligned
CC [M] drivers/mtd/tests/mtd_speedtest.mod.o
CC [M] drivers/mtd/tests/mtd_stresstest.mod.o
CC [M] drivers/mtd/tests/mtd_subpagetest.mod.o
ld: drivers/usb/dwc3/core.o: in function `dwc3_suspend_common':
/usr/src/linux/drivers/usb/dwc3/core.c:2168: undefined reference to `ulpi_write'
ld: drivers/usb/dwc3/core.o: in function `dwc3_resume_common':
/usr/src/linux/drivers/usb/dwc3/core.c:2252: undefined reference to `ulpi_write'
make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1
make: *** [Makefile:1236: vmlinux] Error 2
make: *** Waiting for unfinished jobs....Code: Select all
CONFIG_USB_ULPI_BUS=y
CONFIG_USB_DWC3_ULPI=y
Code: Select all
[ 232.680] (II) modeset(0): Output DP-1 connected
[ 232.680] (II) modeset(0): Using exact sizes for initial modes
[ 232.680] (II) modeset(0): Output DP-1 using initial mode 1920x1080 +0+0
[ 232.680] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[ 232.680] (==) modeset(0): DPI set to (96, 96)
[ 232.680] (II) Loading sub module "fb"
[ 232.680] (II) LoadModule: "fb"
[ 232.680] (II) Module "fb" already built-in
[ 232.680] (II) UnloadModule: "fbdev"
[ 232.680] (II) Unloading fbdev
[ 232.680] (II) UnloadSubModule: "fbdevhw"
[ 232.680] (II) Unloading fbdevhwCode: Select all
[ 232.755] (EE)
[ 232.755] (EE) Backtrace:
[ 232.756] (EE) 0: /usr/libexec/Xorg (xorg_backtrace+0x5c) [0xaaaacfdf782c]
[ 232.756] (EE) 1: /usr/libexec/Xorg (0xaaaacfcc0000+0x13b6f8) [0xaaaacfdfb6f8]
[ 232.756] (EE) 2: linux-vdso.so.1 (__kernel_rt_sigreturn+0x0) [0xffff9a8667ac/var/log/Xorg.0.log lines 210-231/2]
[ 232.756] (EE) 3: /usr/lib64/xorg/modules/drivers/modesetting_drv.so (0xffff9/var/log/Xorg.0.log lines 212-232/29710000+0x12628) [0xffff99722628]
[ 232.756] (EE) 4: /usr/lib64/xorg/modules/drivers/modesetting_drv.so (0xffff9/var/log/Xorg.0.log lines 214-233/29710000+0x12288) [0xffff99722288]
[ 232.756] (EE) 5: /usr/lib64/xorg/modules/drivers/modesetting_drv.so (0xffff9/var/log/Xorg.0.log lines 216-234/29710000+0x91c8) [0xffff997191c8]
[ 232.756] (EE) 6: /usr/libexec/Xorg (0xaaaacfcc0000+0x17a3cc) [0xaaaacfe3a3cc/var/log/Xorg.0.log lines 218-235/2]
[ 232.756] (EE) 7: /usr/libexec/Xorg (0xaaaacfcc0000+0x77c8c) [0xaaaacfd37c8c]
[ 232.757] (EE) 8: /lib64/libc.so.6 (0xffff99ed0000+0x26a80) [0xffff99ef6a80]
[ 232.757] (EE) 9: /lib64/libc.so.6 (__libc_start_main+0x98) [0xffff99ef6b58]
[ 232.757] (EE) 10: /usr/libexec/Xorg (_start+0x30) [0xaaaacfd013b0]
[ 232.757] (EE)
[ 232.757] (EE) Segmentation fault at address 0x8
[ 232.757] (EE)
Fatal server error:
[ 232.757] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 232.757] (EE)
[ 232.757] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
[ 232.757] (EE) Please also check the log file at "/var/log/Xorg.0.log" for ad/var/log/Xorg.0.log lines 232-250/2ditional information.
[ 232.757] (EE)
[ 232.770] (EE) Server terminated with error (1). Closing log fileCode: Select all
[ 1.296532] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed
[ 1.297565] zynqmp-display fd4a0000.display: vtc bridge property not present
[ 1.300217] xilinx-dp-snd-codec fd4a0000.display:zynqmp_dp_snd_codec0: Xilinx DisplayPort Sound Codec probed
[ 1.300489] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed
[ 1.300738] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed
[ 1.301785] xilinx-dp-snd-card fd4a0000.display:zynqmp_dp_snd_card: Xilinx DisplayPort Sound Card probed
[ 1.301891] OF: graph: no port node found in /axi/display@fd4a0000
[ 1.308444] xlnx-drm xlnx-drm.0: bound fd4a0000.display (ops 0xffff800008f55458)
[ 1.457588] zynqmp-display fd4a0000.display: failed to configure link values
[ 1.457594] zynqmp-display fd4a0000.display: failed to train the DP link
[ 1.464889] Console: switching to colour frame buffer device 240x67
[ 1.504053] zynqmp-display fd4a0000.display: [drm] fb0: xlnxdrmfb frame buffer device
[ 1.504304] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.display on minor 0
[ 1.504331] zynqmp-display fd4a0000.display: ZynqMP DisplayPort Subsystem driver probedCode: Select all
LD [M] drivers/gpu/drm/xlnx/zynqmp-dpsub.ko
LD .tmp_vmlinux.kallsyms1
ld: Unexpected GOT/PLT entries detected!
ld: Unexpected run-time procedure linkages detected!
ld: ID map text too big or misaligned
ld: drivers/gpu/drm/display/drm_dp_mst_topology.o: in function `drm_dp_mst_duplicate_state':
/usr/src/linux/drivers/gpu/drm/display/drm_dp_mst_topology.c:4951: undefined reference to `__drm_atomic_helper_private_obj_duplicate_state'
ld: drivers/gpu/drm/display/drm_dp_mst_topology.o: in function `drm_dp_delayed_destroy_work':
/usr/src/linux/drivers/gpu/drm/display/drm_dp_mst_topology.c:4937: undefined reference to `drm_kms_helper_hotplug_event'
ld: drivers/gpu/drm/display/drm_dp_mst_topology.o: in function `drm_dp_mst_up_req_work':
/usr/src/linux/drivers/gpu/drm/display/drm_dp_mst_topology.c:3979: undefined reference to `drm_kms_helper_hotplug_event'
ld: drivers/gpu/drm/display/drm_dp_mst_topology.o: in function `drm_dp_mst_link_probe_work':
/usr/src/linux/drivers/gpu/drm/display/drm_dp_mst_topology.c:2689: undefined reference to `drm_kms_helper_hotplug_event'
make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1
make: *** [Makefile:1236: vmlinux] Error 2
Code: Select all
[ 81.193] (II) AMDGPU(0): Printing probed modes for output DisplayPort-2
[ 81.193] (II) AMDGPU(0): Modeline "3840x2160"x60.0 533.25 3840 3888 3920 4000 2160 2163 2168 2222 +hsync -vsync (133.3 kHz eP)
[ 81.193] (II) AMDGPU(0): Modeline "3840x2160"x30.0 262.75 3840 3888 3920 4000 2160 2163 2168 2191 +hsync +vsync (65.7 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "3840x2160"x24.0 209.75 3840 3888 3920 4000 2160 2163 2168 2185 +hsync -vsync (52.4 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "2560x1440"x60.0 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync (88.8 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1920x1200"x60.0 533.25 1920 3888 3920 4000 1200 2163 2168 2222 +hsync -vsync (133.3 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "2048x1080"x60.0 147.17 2048 2096 2128 2208 1080 1083 1093 1111 +hsync -vsync (66.7 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1920x1080"x60.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -hsync -vsync (67.5 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1920x1080"x60.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.5 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1920x1080"x50.0 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1920x1080"x59.9 148.35 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.4 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1600x1200"x60.0 533.25 1600 3888 3920 4000 1200 2163 2168 2222 +hsync -vsync (133.3 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1280x1024"x75.0 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1440x900"x75.0 136.75 1440 1536 1688 1936 900 903 909 942 -hsync +vsync (70.6 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1440x900"x59.9 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1280x960"x60.0 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1280x800"x60.0 533.25 1280 3888 3920 4000 800 2163 2168 2222 +hsync -vsync (133.3 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1280x720"x60.0 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1280x720"x59.9 74.18 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1024x768"x75.0 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.0 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "800x600"x75.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "720x576"x50.0 27.00 720 732 796 864 576 581 586 625 -hsync -vsync (31.2 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "720x480"x60.0 27.03 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "720x480"x59.9 27.00 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "640x480"x75.0 31.50 640 656 720 840 480 481 484 500 -hsync -vsync (37.5 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "640x480"x72.8 31.50 640 664 704 832 480 489 492 520 -hsync -vsync (37.9 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "640x480"x66.7 30.24 640 704 768 864 480 483 486 525 -hsync -vsync (35.0 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "640x480"x60.0 25.20 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 81.193] (II) AMDGPU(0): Modeline "720x400"x70.1 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e)

Code: Select all
$ cat /proc/sys/kernel/printk
4 4 1 7Thanks I have monkeyed with this, unloaded the display port driver and reloaded it and nothing appears in syslog, console, or dmesg...pingtoo wrote:RayDude,
I don't know much of kernel debugging, but I think you can control how printk work by changing value in /proc/sys/kernel/printk
You can check the current console_loglevel with:The result shows the current, default, minimum and boot-time-default log levels.Code: Select all
$ cat /proc/sys/kernel/printk 4 4 1 7