[PATCH] KVM/arm: kernel low level debug support for ARM32 virtual platforms

Mario Smarduch m.smarduch at samsung.com
Tue Nov 3 11:17:12 PST 2015



On 11/3/2015 9:55 AM, Will Deacon wrote:
> On Tue, Nov 03, 2015 at 09:44:52AM -0800, Mario Smarduch wrote:
>> On 11/3/2015 8:33 AM, Christopher Covington wrote:
>>> On 11/02/2015 06:51 PM, Mario Smarduch wrote:
>>>>    this is a re-post from couple weeks ago, please take time to review this 
>>>> simple patch which simplifies DEBUG_LL and prevents kernel crash on virtual 
>>>> platforms.
>>>>
>>>> Before this patch DEBUG_LL for 'dummy virtual machine':
>>>>
>>>> ( ) Kernel low-level debugging via EmbeddedICE DCC channel
>>>> ( ) Kernel low-level debug output via semihosting I/O
>>>> ( ) Kernel low-level debugging via 8250 UART
>>>> ( ) Kernel low-level debugging via ARM Ltd PL01x Primecell
>>>>
>>>> In summary if debug uart is not emulated kernel crashes.
>>>> And once you pass that hurdle, uart physical/virtual addresses are unknown.
>>>> DEBUG_LL comes in handy on many occasions and should be somewhat 
>>>> intuitive to use like it is for physical platforms. For virtual platforms
>>>> user may start daubting the host and get into a bigger mess.
>>>>
>>>> After this patch is applied user gets:
>>>>
>>>> (X) Kernel low-level debugging on QEMU Virtual Platform
>>>> ( ) Kernel low-level debugging on Kvmtool Virtual Platform
>>>> 	..... above repeated ....
>>>>
>>>> The virtual addresses selected follow arm reference models, high in vmalloc 
>>>> section with high mem enabled and guest running with >= 1GB of memory. The 
>>>> offset is leftover from arm reference models.
>>>
>>> Which model? It doesn't appear to match the vexpress AEM/RTSM/FVP/whatever
>>> which used 0x1c090000 for UART0.
>>
>> I recall QEMU virt model had it's own physical address map, for sure I saw the
>> virtio-mmio regions assigned in some ARM document. Peter would you know?
>>
>> As far as kvmtool I'm not sure, currently PC1 COM1 port is used? Andre will that
>> stay fixed?
> 
> We make absolutely no guarantees about the memory map provided by kvmtool.
> 
> Will
> 

If that's also the case for qemu, then I guess the best you can do is find a way
to dump the device tree. Find the uart, physical address and try figure out the
virtual address.

Pretty involved, hoped for something more automated since that's a handy feature.

Thanks,
- Mario.



More information about the linux-arm-kernel mailing list