On 6/26/26 15:20, Konrad Dybcio wrote: > On 6/25/26 4:10 PM, George Moussalem via B4 Relay wrote: >> From: George Moussalem <[email protected]> >> >> Add support to bring up the M0 core of the bluetooth subsystem found in >> the IPQ5018 SoC. >> >> The signed firmware loaded is authenticated by TrustZone. If successful, >> the M0 core boots the firmware and the peripheral is taken out of reset >> using a Secure Channel Manager call to TrustZone. >> >> Signed-off-by: George Moussalem <[email protected]> >> --- > > Can this not fit inside the existing PAS driver?
I've tried but there were two issues with that: 1. a custom way to load the firmware into memory is required because the loadable segment needs to be offset by the virtual address in the mbn file (see 0x20250 below). The standard mdt_loader uses the physical addresses. readelf -l bt_fw_patch.mbn Elf file type is EXEC (Executable file) Entry point 0x20255 There are 3 program headers, starting at offset 52 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align NULL 0x000000 0x00000000 0x00000000 0x00094 0x00000 0 NULL 0x001000 0x0001a000 0x0001a000 0x00088 0x01000 0x1000 LOAD 0x002000 0x00020250 0x00000000 0x06154 0x190f8 RWE 0x4 2. memory needs to be ioremapped using ioremap, not ioremap_wc, else TZ will complain and throw XPU violations due to strict memory alignment and non-cache requirements. > > Konrad Cheers, George

