
On 04/03/2024 15:51, Volodymyr Babchuk wrote:
Hi Stephan,
Stephan Gerhold stephan@gerhold.net writes:
On Fri, Mar 01, 2024 at 06:25:39PM +0000, Volodymyr Babchuk wrote:
Caleb Connolly caleb.connolly@linaro.org writes:
On 29/02/2024 14:21, Volodymyr Babchuk wrote:
This patch series adds support for Qualcomm SA8155-ADP development board. Main motivation for this series is to allow running virtualization software on this board and U-Boot is a good way to break Qualcomm's boot chain at EL2 with more convenient ways for uploading and running the code. With this patches applied it is possible to upload and run Xen on this board. KVM probably should work too.
This is really cool! I've experimented with this on SDM845 and SM8250 but never really did anything with it... I'd love to take a look at your Xen branch?
Honestly, there is nothing to look at right now. I just implemented early printk serial driver for the qcom, made hacks to the device tree and trying to boot Dom0. I already expecting issues with the GPU, because it has own SMMU without virtualization support and Xen already complains about it. So I had to remove it from the DTS for a time being.
Did you enable all the clocks/power domains/etc for the GPU SMMU? If I remember correctly it is off by default and all registers read as zeroes. The SMMU driver could easily get confused about the capabilities of the SMMU (e.g. the stage 2/virtualization support) if all the ID registers read as zeroes.
Ah, this is a great idea, thanks. I tried a quick test by enabling only clocks that are provided by GCC, but looks like I need to enable GPUCC clocks as well. So I need to write a driver for GPUCC or at least figure which registers to write with a debugger. I'll try this later.
By the way, do you have any suggestion about my second issue? When Linux in the Dom0 tries to access UFS, CPU gets a secure interrupt and hangs in TZ. I had the same exactly behavior when I tried to access EMAC without enabling clocks and power domains in U-Boot. But Linux should enable all prerequisites for UFS... I suspect that there is an additional initialization needs to be done, but I didn't figured it yet.
Maybe it would be easiest to try enabling UFS in U-Boot first? I have it working on SDM845 and SM8250, so it should be easy enough to add SM8150 as well...
You can find the UFS and PHY patches in the branch linked below (sorry it's not very clean... Maybe easier to just add your drivers on top)
This way we can more easily dig in and see what the root cause is.
If you run into issues there let me know and I can maybe give it a try on an SM8150 HDK.
https://git.codelinaro.org/linaro/qcomlt/u-boot/-/commits/caleb/rbx-integrat...