Use the rM kernel sources
Have you looked at using the rM kernel sources instead of upstream?
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.
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
What tag are you building?
@timower poke?
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.
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.