genodelabs / genode-allwinner

Allwinner SoC support for the Genode OS framework
Other
13 stars 10 forks source link

a64_linux: update to orange-pi-6.1-20230214-2103 #21

Closed cnuke closed 1 year ago

cnuke commented 1 year ago

The commit 7fa21a2 contains the update and was so far tested with Sculpt on the PinePhone and _emac_nicdrv on the PineA64LTS board.

The other commits were made in the genode repository and lay the groundwork for the update. Commit 1d6dbd8 can be dropped when _pc_nicdrv series got merged.

During the update I started to deduplicate and consolidate some dummy implementation (especially the ones newly introduced). There still duplicates left and the do_softirq_on_own_stack() implementation could be moved into the dde_linux repo but that I would do afterwards.

nfeske commented 1 year ago

For the most part, the new driver versions seem to work nicely. I could test most of the mobile Sculpt features on the PinePhone with them. I nevertheless encountered a few glitches.

@cnuke you may take my merge_a64_dde_linux_update branches (at genode and genode-allwinner) as reference.

The glmark2 demo raised a resource request at the SGI-logo screen:

[init -> runtime] child "gpu_drv" requests resources: ram_quota=0, cap_quota=4

I observed the following error on the attempt to run the camera test:

[init ... -> camera_drv] Use front camera configuration: 640x480@15/0 (yuv) rotate: 1 num_buffer: 4
[init ... -> camera_drv] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[init ... -> camera_drv] time-clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
[init ... -> camera_drv] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
[init ... -> camera_drv] time-clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[init ... -> camera_drv] pinctrl core: initialized pinctrl subsystem
[init ... -> camera_drv] mc-mc-devnode: Linux media interface: v0.10
[init ... -> camera_drv] v4l2-core-v4l2-dev: Linux video capture interface: v2.00
[init ... -> camera_drv] Warning: lx_emul_random_gen_bytes dummy implementation used, returning 0(s)
[init ... -> camera_drv] time-clocksource: Switched to clocksource dde_counter
[init ... -> camera_drv] i2c 0-003c: Fixing up cyclic dependency with 1cb0000.csi
[init ... -> camera_drv] i2c 0-004c: Fixing up cyclic dependency with 1cb0000.csi
[init ... -> camera_drv] i2c-gpio i2c-csi: using lines 141 (SDA) and 140 (SCL)
[init ... -> camera_drv] Error: Function siphash_1u64 not implemented yet!
[init ... -> camera_drv] Backtrace follows:
[init ... -> camera_drv] 0x1051fd8
[init ... -> camera_drv] 0x1079044
[init ... -> camera_drv] 0x107a50c
[init ... -> camera_drv] 0x107aec4
[init ... -> camera_drv] 0x10204a4
[init ... -> camera_drv] 0x10307f4
[init ... -> camera_drv] 0x102e4b8
[init ... -> camera_drv] 0x1008e20
[init ... -> camera_drv] 0x1007158
[init ... -> camera_drv] 0x1007480
[init ... -> camera_drv] 0x10078cc
[init ... -> camera_drv] 0x1001548
[init ... -> camera_drv] 0x10076d8
[init ... -> camera_drv] 0x100173c
[init ... -> camera_drv] 0x1006990
[init ... -> camera_drv] 0x106c714
[init ... -> camera_drv] 0x106cab8
[init ... -> camera_drv] 0x105f228
[init ... -> camera_drv] 0x1093a58
[init ... -> camera_drv] Will sleep forever...
cnuke commented 1 year ago

@nfeske commit c1f2431 address the problem with the camera driver.

cnuke commented 1 year ago

@nfeske commit 3bc312a increase the gpu_drv's CAP quota so that glmark2 finishes.

cnuke commented 1 year ago

Commits 4b1c157 and 36e02a4 adapt imx and zynq to the __get_random_u32_below promotion.

nfeske commented 1 year ago

Thank you @cnuke for the follow-up patches. I just ran the latest version on my PinePhone and everything - including the camera and glmark2 - worked as intended, which is great! The only driver I haven't tested yet is the USB driver (for mobile data).

I merged the commit to staging now.

nfeske commented 1 year ago

I can confirm that mobile data (USB net) works as well. :-)