I attempted your fix to change the driver, with no change in results. Again, I think has to do with that the hardware only has a serial port (no video output). Being a limit of the hardware I am not too worried, its something I expected I would run into and have to work around either way. Also thanks for the heads up on AMD side of things, chances are I will be back with questions regarding that if I run into anything serious.
I think I am in a good state now to try some other things and create my own little application in the framework to talk to my target device. To the tutorials I go!
Below is the output of the fixes you suggested running on the hardware. This includes the other fix that got the demo to work in QEMU. I also attempted the other permutations (both in QEMU and on hardware) which I can supply if requested.
``` Booting `Genode on seL4'
Bender: Hello World.
Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5ff000 end=0xffff330 size=0xa00330 name='image.elf' Physical Memory Region from 0 size 9fc00 type 1 Physical Memory Region from 9fc00 size 400 type 2 Physical Memory Region from f0000 size 10000 type 2 Physical Memory Region from 100000 size cfdab000 type 1 Adding physical memory region 0x100000-0xcfeab000 Physical Memory Region from cfeab000 size 155000 type 2 Physical Memory Region from f8000000 size 4000000 type 2 Physical Memory Region from fed40000 size 5000 type 2 Physical Memory Region from 1000000000 size 2f000000 type 1 Adding physical memory region 0x100000000-0x12f000000 Detected 1 boot module(s): Kernel loaded to: start=0x200000 end=0xaa5000 size=0x8a5000 entry=0x201209 ACPI: RSDT paddr=0xcfeac030 ACPI: RSDT vaddr=0xcfeac030 ACPI: FADT paddr=0xcfead8f0 ACPI: FADT vaddr=0xcfead8f0 ACPI: FADT flags=0x3c5a5 ACPI: MADT paddr=0xcfeadc20 ACPI: MADT vaddr=0xcfeadc20 ACPI: MADT apic_addr=0xfee00000 ACPI: MADT flags=0x1 ACPI: MADT_APIC apic_id=0x0 ACPI: MADT_APIC apic_id=0x1 ACPI: MADT_APIC apic_id=0x2 ACPI: MADT_APIC apic_id=0x3 ACPI: MADT_IOAPIC ioapic_id=4 ioapic_addr=0xfec00000 gsib=0 ACPI: MADT_IOAPIC ioapic_id=5 ioapic_addr=0xfec20000 gsib=24 ACPI: Not recording this IOAPIC, only support 1 ACPI: MADT_ISO bus=0 source=0 gsi=2 flags=0x0 ACPI: MADT_ISO bus=0 source=9 gsi=9 flags=0xf ACPI: 4 CPU(s) detected ELF-loading userland images from boot modules: size=0x186a000 v_entry=0x2000018 v_start=0x2000000 v_end=0x386a000 p_start=0x10000000 p_end=0x1186a000 Moving loaded userland images to final location: from=0x10000000 to=0xaa5000 size=0x186a000 Starting node #0 with APIC ID 0 Mapping kernel window is done vt-x: not supported Starting node #1 with APIC ID 1 vt-x: not supported Starting node #2 with APIC ID 2 vt-x: not supported Starting node #3 with APIC ID 3 vt-x: not supported Booting all finished, dropped to user space :phys_mem_16k: Allocator 0x2fe7b30 dump: Block: [0000000000200000,0000000000240000) size=256K avail=256K max_avail=256K => mem_size=262144 (0 MB) / mem_avail=262144 (0 MB)
Warning: memory in range [0000000100000000,0000000120000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [0000000120000000,0000000128000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [0000000128000000,000000012c000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e000000,000000012e400000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e400000,000000012e600000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e600000,000000012e700000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e700000,000000012e780000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e780000,000000012e7c0000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e7e0000,000000012e7e1000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [000000012f000000,0000000130000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000130000000,0000000140000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000140000000,0000000180000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000180000000,0000000200000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000200000000,0000000400000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000400000000,0000000800000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000800000000,0000001000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000001000000000,0000002000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000002000000000,0000004000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000004000000000,0000008000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000008000000000,0000408000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000408000000000,0000608000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000608000000000,0000708000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000708000000000,0000788000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000788000000000,00007c8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007c8000000000,00007e8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007e8000000000,00007f8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007f8000000000,0000800000000000) is unavailable (due to limited untyped cnode range) virtual address layout of core: overall [0000000000002000,0000000200000000) core image [0000000002000000,000000000386a000) ipc buffer [000000000386a000,000000000386b000) boot_info [000000000386b000,000000000386d000) stack area [0000000040000000,0000000050000000) Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet boot module 'status_bar' (131872 bytes) boot module 'input_filter' (200192 bytes) boot module 'init' (345536 bytes) boot module 'scout' (1788016 bytes) boot module 'report_rom' (128160 bytes) boot module 'timer' (120736 bytes) boot module 'en_us.chargen' (13500 bytes) boot module 'launchpad' (829744 bytes) boot module 'ld.lib.so' (1020368 bytes) boot module 'test-libpng_static' (154016 bytes) boot module 'nitlog' (144392 bytes) boot module 'vesa_fb_drv' (127432 bytes) boot module 'ps2_drv' (181488 bytes) boot module 'usb_drv' (1400368 bytes) boot module 'rom_filter' (121520 bytes) boot module 'testnit' (108568 bytes) boot module 'platform_drv' (334464 bytes) boot module 'config' (5603 bytes) boot module 'drivers.config' (4788 bytes) boot module 'nitpicker' (378296 bytes) boot module 'init.xsd' (7148 bytes) boot module 'fb_drv.config' (51 bytes) boot module 'nit_focus' (97520 bytes) boot module 'acpi_drv' (155480 bytes) boot module 'pointer' (154656 bytes) boot module 'launchpad.config' (594 bytes) boot module 'global_keys_handler' (164400 bytes) boot module 'special.chargen' (1346 bytes) boot module 'liquid_fb' (684584 bytes) boot module 'input_filter.config' (768 bytes) Warning: need physical memory, but Platform object not constructed yet Genode 19.08 3256 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x10 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 [init -> drivers -> fb_drv] Error: No boot framebuffer information available. [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Genode::Service_denied' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers -> acpi_drv] Found MCFG Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> acpi_drv] MCFG BASE 0xf8000000 seg 0x0 bus 0x0-0x40 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> drivers -> acpi_drv] XSDT OEM 'COREv4', table id 'COREBOOT', revision 0, creator 'CORE' (538511107) [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-40:1f.7 - addr [00000000f8000000,00000000fc100000) [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1c6280 structures: 0xcfeab020) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers -> platform_drv] Root bridge: 00:18.0 [init -> drivers -> platform_drv] 00:02.2 - bridge 01:00.0 [init -> drivers -> platform_drv] 00:02.3 - bridge 02:00.0 [init -> drivers -> platform_drv] 00:02.4 - bridge 03:00.0 [init -> drivers -> platform_drv] 00:02.5 - bridge 04:00.0 enabled [init -> drivers -> usb_drv] Could not read screen resolution in config node [init -> drivers -> usb_drv] Configured HID screen with 0x0 (multitouch=false) [init -> drivers -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service [init -> drivers -> usb_drv] No <nic> config node found - not starting the USB Nic (Network) service [init -> drivers -> usb_drv] No <raw> config node found - not starting external USB service [init -> drivers -> usb_drv] Enabled UHCI (USB 1.0/1.1) support [init -> drivers -> usb_drv] Enabled EHCI (USB 2.0) support [init -> drivers -> usb_drv] Enabled XHCI (USB 3.0) support [init -> drivers -> platform_drv] Warning: Out_of_caps during Device_component construction [init -> drivers -> usb_drv] ioremap: mapped phys 0xf7ea2000 (size 8192) to virt 0x20000 [init -> drivers -> usb_drv] ioremap: return sub range phys 0xf7ea2000 (size 8192) to virt 0x20000 [init -> drivers -> usb_drv] dev_info: xHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 1 [init -> drivers -> usb_drv] dev_info: hcc params 0x014040c3 hci version 0x100 quirks 0x00000410 [init -> drivers -> platform_drv] 00:10.0 adjust IRQ as reported by ACPI: 5 -> 18 Warning: virtual void Stack_area_region_map::detach(Genode::Region_map::Local_addr): not implemented Warning: free not implemented [init -> drivers -> platform_drv] Error: IRQ-session creation failed (ram_quota=6K, cap_quota=4, irq_number=0, irq_trigger=0, irq_polarity=0, device_config_phys=0xf8080000) [init -> drivers -> platform_drv] 00:10.0 uses IRQ, vector 0x12, MSI 64bit capable, non-maskable [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] dev_info: xHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 2 [init -> drivers -> usb_drv] dev_info: We don't know the algorithms for LPM for this host, disabling LPM. [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] ioremap: mapped phys 0xf7ea6000 (size 256) to virt 0x17000 [init -> drivers -> usb_drv] ioremap: return sub range phys 0xf7ea6000 (size 256) to virt 0x17000 [init -> drivers -> usb_drv] dev_info: EHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 3 [init -> drivers -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [init -> drivers -> platform_drv] 00:13.0 adjust IRQ as reported by ACPI: 5 -> 18 [init -> drivers -> platform_drv] 00:13.0 uses IRQ, vector 0x12, non-maskable [init -> drivers -> usb_drv] dev_info: irq 130, io mem 0xf7ea6000 [init -> drivers -> usb_drv] dev_info: USB 2.0 started, EHCI 1.00 [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] dev_info: new high-speed USB device number 2 using ehci-pci [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 4 ports detected ```
73's, Adam Wiethuechter, Jr Software Engineer Critical Technologies Inc. (CTI) Desk: (315)-793-0248 x157 Cell: (315)-552-4298 adam.wiethuechter@critical.com
On 9/14/19 5:48 AM, Alexander Boettcher wrote:
On 13.09.19 23:31, Adam T. Winchester wrote:
Just got the ISO image (found in build/x86_64/var/run/demo.iso, just dd onto SD card) to start up and display via Minicom.
Good.
not implemented - resources leaked: 0x20 [init -> drivers -> acpi_drv] Found MCFG [init -> drivers -> acpi_drv] MCFG BASE 0xf8000000 seg 0x0 bus 0x0-0x40 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> drivers -> acpi_drv] XSDT OEM 'COREv4', table id 'COREBOOT', revision 0, creator 'CORE' (538511107) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-40:1f.7 - addr [00000000f8000000,00000000fc100000) [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1c6280 structures: 0xcfeab020) [init -> drivers -> platform_drv] Root bridge: 00:18.0 [init -> drivers -> platform_drv] 00:02.2 - bridge 01:00.0 [init -> drivers -> platform_drv] 00:02.3 - bridge 02:00.0 [init -> drivers -> platform_drv] 00:02.4 - bridge 03:00.0 [init -> drivers -> platform_drv] 00:02.5 - bridge 04:00.0 enabled Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers -> fb_drv] Error: PCI VGA card not found. [init -> drivers -> fb_drv] Error: H/W driver init failed [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Framebuffer::Fatal' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> usb_drv] Could not read screen resolution in config node
You may try the fb_boot_drv [0][1] instead of the vesa driver. Mainly you let grub2 set up the graphic device and if this succeeds, the driver will just us the prepared framebuffer and the fixed resolution. The driver should work independent of whether you boot uefi or legacy boot, as long as grub2 manages to setup things.
I attached a diff below where you see the possible set screws. Please note that the patch in the demo.run is just a bad hack. If the fb_boot_drv works for you, you should consider to create another drivers_interactive-pc package which contains the fb_boot-drv instead of the vesa driver.
[0] https://genode.org/documentation/release-notes/17.08#Support_for_boot-time_i... [1] https://lists.genode.org/pipermail/users/2017-October/005548.html
[init -> drivers -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
Just as note, AMD is not regularly/officially tested/supported by Genode Labs - but used/tested by enthusiasts nevertheless also with Sculpt.
I think its just the fact that APU series has no GUI that I am not seeing anything else. What does worry me though is this: "[init -> drivers -> platform_drv] Warning: Out_of_caps during Device_component construction". Sounds like I ran out of something, which may not be good considering my goal is to hopefully get Sculpt working on this hardware.
Is there another demo/test application I can use that functions with serial communication to further test and develop with (seeing as I don't have an video ouput) or will I have to roll my own?
Thanks again!
diff --git a/repos/os/run/demo.run b/repos/os/run/demo.run index 6b9642f4b6..2a8bc3cd85 100644 --- a/repos/os/run/demo.run +++ b/repos/os/run/demo.run @@ -213,7 +213,11 @@ puts $launchpad_config_fd {<config> </config>} close $launchpad_config_fd
-build_boot_image { status_bar testnit launchpad.config } +build { drivers/framebuffer/boot }
+exec cp bin/fb_boot_drv bin/vesa_fb_drv
+build_boot_image { status_bar testnit launchpad.config vesa_fb_drv }
if {[get_cmd_switch --autopilot]} { run_genode_until {[init -> scout] png is.*\n} 40 diff --git a/tool/run/boot_dir/nova b/tool/run/boot_dir/nova index 73f0e4d934..b97cff8703 100644 --- a/tool/run/boot_dir/nova +++ b/tool/run/boot_dir/nova @@ -114,7 +114,7 @@ proc run_boot_dir {binaries} { puts $fh "set timeout=0"
# choose best graphic mode
puts $fh "set gfxpayload=auto"
puts $fh "set gfxpayload=1024x768@32"
if {[have_include image/uefi]} { puts $fh "insmod gfxterm"
diff --git a/tool/run/boot_dir/sel4 b/tool/run/boot_dir/sel4 index 14f2dbafcb..2f04260d8e 100644 --- a/tool/run/boot_dir/sel4 +++ b/tool/run/boot_dir/sel4 @@ -84,7 +84,8 @@ proc run_boot_dir {binaries} { set fh [open "[run_dir]/boot/grub/grub.cfg" "WRONLY CREAT TRUNC"] puts $fh "set timeout=0" # tell grub2 to prefer 32bit framebuffer resolution
puts $fh "set gfxpayload=\"0x0x32\""
+# puts $fh "set gfxpayload="0x0x32""
puts $fh "menuentry 'Genode on seL4' {" puts $fh " insmod multiboot2" puts $fh " multiboot2 /boot/bender phys_max=256M $serial_bender_opt"puts $fh "set gfxpayload=1024x768x32"