rM-docker icon indicating copy to clipboard operation
rM-docker copied to clipboard

Use the rM kernel sources

Open Eeems opened this issue 2 years ago • 6 comments

Have you looked at using the rM kernel sources instead of upstream?

Eeems avatar Oct 04 '23 19:10 Eeems

Right, I tried at the start, but there was a bug that prevented them from being compiled on my host machine. As I'm using docker anyway now, this should just work.

Ideally we'd also create a qemu machine that closely matches the remarkable. Then we could use the rM device tree as well.

timower avatar Oct 04 '23 20:10 timower

Doesn't seem to compile:

131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
131.0 pci-imx6.c:(.text+0xbf8): undefined reference to `dw_pcie_link_up'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `pci_imx_set_msi_en':
131.0 pci-imx6.c:(.text+0xe48): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xe5c): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xe6c): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xe88): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xe98): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xeb0): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_set_l1_latency':
131.0 pci-imx6.c:(.text+0xee4): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xef8): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xf38): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xf50): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `pcie_phy_wait_ack':
131.0 pci-imx6.c:(.text+0xf84): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xf98): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xfb8): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0xff4): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x1014): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `pcie_phy_read':
131.0 pci-imx6.c:(.text+0x1084): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x10a4): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x10e0): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x1100): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x1118): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `pcie_phy_write':
131.0 pci-imx6.c:(.text+0x27cc): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x27e0): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2800): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2840): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2860): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x289c): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x28bc): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x28f4): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2914): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2948): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_establish_link':
131.0 pci-imx6.c:(.text+0x298c): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x29a0): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x29b0): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x29c8): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x29d8): undefined reference to `dw_pcie_wait_for_link'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x29fc): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2a18): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2a28): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2a3c): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2a4c): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2a68): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2a78): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2a8c): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2aa4): undefined reference to `dw_pcie_wait_for_link'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2abc): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2ad0): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2ae0): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2b50): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2b88): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x2b9c): undefined reference to `dw_pcie_write_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_probe':
131.0 pci-imx6.c:(.text+0x33c8): undefined reference to `dw_pcie_read_dbi'
131.0 /opt/x-tools/arm-remarkable-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: pci-imx6.c:(.text+0x33dc): undefined reference to `dw_pcie_write_dbi'
131.2 make[1]: *** [/opt/linux/Makefile:1103: vmlinux] Error 1
131.2 make[1]: Leaving directory '/opt/linux/imx7'
131.2 make: *** [Makefile:179: sub-make] Error 2

We'd probably have to disable PCI support

timower avatar Oct 05 '23 17:10 timower

What tag are you building?

Eeems avatar Oct 05 '23 19:10 Eeems

@timower poke?

Eeems avatar Nov 11 '23 20:11 Eeems

I was using rm1xx_5.4.70_v1.3.x, I got a bit further by disabling PCI. But it seems like remarkable isn't using upstream imx drivers, which don't support qemu. It hangs on startup, without any log messages. Same when I use the zImage from the firmware image.

Next step is attaching gdb to see where it hangs, but I'm not sure it's worth the effort.

timower avatar Nov 11 '23 20:11 timower

Oh, are you trying to build the kernel with the toltec toolchain? It might be missing things required to build the kernel. You could try building with the official toolchain instead: https://remarkable.guide/devel/toolchains.html#docker

That said, we would still run into the same issue with imx. I did a bit of poking online and found the following: https://stackoverflow.com/a/57818584

This leads me to https://git.iostud.io/pciavald/remarkable-dev, which is interesting.

It may be worth writing the custom code required to add a rM machine configuration to qemu at some point.

Eeems avatar Dec 27 '23 21:12 Eeems