qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu devel v5 PATCH 0/5] Add support for Smartfusion2


From: sundeep subbaraya
Subject: Re: [Qemu-devel] [Qemu devel v5 PATCH 0/5] Add support for Smartfusion2 SoC
Date: Mon, 26 Jun 2017 21:41:49 +0530

Hi Philippe,

On Fri, Jun 9, 2017 at 12:51 PM, sundeep subbaraya <address@hidden>
wrote:

> Hi Philippe,
>
> On Wed, May 31, 2017 at 11:06 AM, Philippe Mathieu-Daudé <address@hidden>
> wrote:
>
>> Hi Sundeep,
>>
>> On 05/29/2017 02:28 AM, sundeep subbaraya wrote:
>>
>>> Hi Philippe,
>>>
>>> Any update on this? I will wait for your comments too
>>> and send next iteration fixing Alistair comments.
>>>
>>
>> Sorry I'm supposed to be in holidays ;)
>>
>
> Ohh sorry currently am in vacation :)
>
>>
>>
>>> Thanks,
>>> Sundeep
>>>
>>> On Wed, May 17, 2017 at 3:09 PM, sundeep subbaraya
>>> <address@hidden <mailto:address@hidden>> wrote:
>>>
>>>     Hi Philippe,
>>>
>>>     On Wed, May 17, 2017 at 9:57 AM, Philippe Mathieu-Daudé
>>>     <address@hidden <mailto:address@hidden>> wrote:
>>>
>>>         Hi Sundeep,
>>>
>>>         This patchset is way cleaner!
>>>         I had a fast look and I like it, I'll try to make some time soon
>>>         to review details and test it.
>>>
>>>
>>>     Thank you
>>>
>>>
>>>
>>>
>>>         Is your work interested on U-Boot or more focused in Linux
>>> kernel?
>>>
>>>
>>>     I am interested more in kernel. I had to look into u-boot for first
>>>     time for Qemu only.
>>>     I worked only on FPGAs(load kernel with debugger) till now so never
>>>     got a chance to look into u-boot.
>>>
>>>
>>>         If you compile QEMU with libfdt support you can use the -dtb
>>>         option to pass the blob to the kernel directly, bypassing the
>>>         bootloader.
>>>
>>>     Yeah for armv7m I could not find any thing like that in tree.
>>>
>>>
>>>         If you need a bootloader you may give a look at coreboot which
>>>         supports dts well, see how Vladimir Serbinenko used Linux's dt
>>>         to boot a QEMU Versatile Express board:
>>>         https://mail.coreboot.org/pipermail/coreboot-gerrit/2016-Feb
>>> ruary/040899.html
>>>         <https://mail.coreboot.org/pipermail/coreboot-gerrit/2016-Fe
>>> bruary/040899.html>
>>>
>>>     Cool. I will look into it.
>>>
>>>     Thanks,
>>>     Sundeep
>>>
>>>
>>>         Regards,
>>>
>>>         Phil.
>>>
>>>
>>>         On 05/16/2017 12:38 PM, Subbaraya Sundeep wrote:
>>>
>>>             Hi Qemu-devel,
>>>
>>>             I am trying to add Smartfusion2 SoC.
>>>             SoC is from Microsemi and System on Module(SOM)
>>>             board is from Emcraft systems. Smartfusion2 has hardened
>>>             Microcontroller(Cortex-M3)based Sub System and FPGA fabric.
>>>             At the moment only system timer, sysreg and SPI
>>>             controller are modelled.
>>>
>>>             Testing:
>>>             ./arm-softmmu/qemu-system-arm -M smartfusion2-som -serial
>>>             mon:stdio \
>>>             -kernel u-boot.bin -display none -drive
>>>             file=spi.bin,if=mtd,format=raw
>>>
>>
>> I'm not sure the timer is working correctly, U-Boot loops with this
>> pattern:
>>
>> msf2_sysreg_read: addr: 0x00000048 data: 0x00000220
>> msf2_sysreg_write: addr: 0x00000048 data: 0x00000220
>> msf2_sysreg_read: addr: 0x00000048 data: 0x00000220
>> msf2_sysreg_write: addr: 0x00000048 data: 0x00000020
>> msf2_sysreg_read: addr: 0x00000048 data: 0x00000020
>> msf2_sysreg_write: addr: 0x00000048 data: 0x00000000
>> msf2_sysreg_read: addr: 0x00000048 data: 0x00000000
>> msf2_sysreg_write: addr: 0x00000048 data: 0x00000020
>> msf2_sysreg_read: addr: 0x00000048 data: 0x00000020
>> msf2_sysreg_write: addr: 0x00000048 data: 0x00000220
>>
>> I checked the images and Linux is booting. But as you mentioned I changed
u-boot
for boot delay and have seen this issue. Actually it is taking too long for
a second.
Smartfusion2 timer is working fine(Linux) whereas u-boot is using Systick
for auto-boot
timer. I did not understand quite correctly about ARM Systick in Qemu. How
do we
specify frequency of the Systick timer? How Systick is configured to use
CPU frequency
since qemu cpu speed is not constant? How frequency has to be specified for
using external clock as Systick input?

Please help me understand this.

Thanks,
Sundeep


>
>>>             Binaries u-boot.bin and spi.bin are at:
>>>
>>
>> you can compress spi.bin!
>>
>> can you share u-boot.elf with debug symbols too?
>>
>
> Sure. I have tested binaries before pushing. Did you compile the u-boot
> again?
> Please wait for a few days I will check and provide once am back.
>
> Thanks,
> Sundeep
>
>>
>> Regards,
>>
>> Phil.
>>
>>             https://github.com/Subbaraya-Sundeep/qemu-test-binaries.git
>>>
>>>             <https://github.com/Subbaraya-Sundeep/qemu-test-binaries.git
>>> >
>>>
>>>             U-boot is from Emcraft with modified
>>>                 - SPI driver not to use PDMA.
>>>                 - ugly hack to pass dtb to kernel in r1.
>>>             @
>>>             https://github.com/Subbaraya-Sundeep/emcraft-uboot-sf2.git
>>>             <https://github.com/Subbaraya-Sundeep/emcraft-uboot-sf2.git>
>>>
>>>             Linux is 4.5 linux with Smartfusion2 SoC dts and clocksource
>>>             driver added by myself @
>>>             https://github.com/Subbaraya-Sundeep/linux.git
>>>             <https://github.com/Subbaraya-Sundeep/linux.git>
>>>
>>>             v5
>>>                 As per Philippe comments:
>>>                     Added abort in Sysreg if guest tries to remap memory
>>>                     other than default mapping.
>>>                     Use of CONFIG_MSF2 in Makefile for soc.c
>>>                     Fixed incorrect logic in timer model.
>>>                     Renamed msf2-timer.c -> mss-timer.c
>>>                             msf2-spi.c -> mss-spi.c also type names
>>>                     Renamed function msf2_init->emcraft_sf2_init in
>>>             msf2-som.c
>>>                     Added part-name,eNVM-size,eSRAM-size,pclk0 and pclk1
>>>                         properties to soc.
>>>                     Pass soc part-name,memory size and clock rate
>>>             properties from som.
>>>             v4:
>>>                 Fixed build failure by using PRIx macros.
>>>             v3:
>>>                 Added SoC file and board file as per Alistair comments.
>>>             v2:
>>>                 Added SPI controller so that u-boot loads kernel from
>>>             spi flash.
>>>             v1:
>>>                 Initial patch set with timer and sysreg
>>>
>>>             Thanks,
>>>             Sundeep
>>>
>>>             Subbaraya Sundeep (5):
>>>               msf2: Add Smartfusion2 System timer
>>>               msf2: Microsemi Smartfusion2 System Register block.
>>>               msf2: Add Smartfusion2 SPI controller
>>>               msf2: Add Smartfusion2 SoC.
>>>               msf2: Add Emcraft's Smartfusion2 SOM kit.
>>>
>>>              default-configs/arm-softmmu.mak |   1 +
>>>              hw/arm/Makefile.objs            |   2 +
>>>              hw/arm/msf2-soc.c               | 201 +++++++++++++++++++++
>>>              hw/arm/msf2-som.c               |  89 ++++++++++
>>>              hw/misc/Makefile.objs           |   1 +
>>>              hw/misc/msf2-sysreg.c           | 161 +++++++++++++++++
>>>              hw/ssi/Makefile.objs            |   1 +
>>>              hw/ssi/mss-spi.c                | 378
>>>             ++++++++++++++++++++++++++++++++++++++++
>>>              hw/timer/Makefile.objs          |   1 +
>>>              hw/timer/mss-timer.c            | 249
>>>             ++++++++++++++++++++++++++
>>>              include/hw/arm/msf2-soc.h       |  69 ++++++++
>>>              include/hw/misc/msf2-sysreg.h   |  80 +++++++++
>>>              include/hw/ssi/mss-spi.h        | 104 +++++++++++
>>>              include/hw/timer/mss-timer.h    |  80 +++++++++
>>>              14 files changed, 1417 insertions(+)
>>>              create mode 100644 hw/arm/msf2-soc.c
>>>              create mode 100644 hw/arm/msf2-som.c
>>>              create mode 100644 hw/misc/msf2-sysreg.c
>>>              create mode 100644 hw/ssi/mss-spi.c
>>>              create mode 100644 hw/timer/mss-timer.c
>>>              create mode 100644 include/hw/arm/msf2-soc.h
>>>              create mode 100644 include/hw/misc/msf2-sysreg.h
>>>              create mode 100644 include/hw/ssi/mss-spi.h
>>>              create mode 100644 include/hw/timer/mss-timer.h
>>>
>>>
>>>
>>>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]