[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu devel v8 PATCH 0/5] Add support for Smartfusion2 So
From: |
Alistair Francis |
Subject: |
Re: [Qemu-arm] [Qemu devel v8 PATCH 0/5] Add support for Smartfusion2 SoC |
Date: |
Thu, 14 Sep 2017 10:06:43 -0700 |
On Wed, Sep 13, 2017 at 9:10 PM, Philippe Mathieu-Daudé <address@hidden> wrote:
> On 09/08/2017 04:24 AM, sundeep subbaraya wrote:
>>
>> Hi Phillipe,
>>
>> On Fri, Sep 8, 2017 at 3:14 AM, Philippe Mathieu-Daudé <address@hidden
>> <mailto:address@hidden>> wrote:
>>
>> Hi Subbaraya,
>>
>> very good work!
>>
>> On 09/07/2017 04:24 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
>>
>>
>> "-M emcraft-sf2" ;)
>>
>>
>> copy/paste error :)
>>
>>
>> U-Boot 2010.03-00147-g7da5092 (Jul 03 2017 - 09:04:50)
>>
>> CPU : SmartFusion2 SoC (Cortex-M3 Hard IP)
>> Freqs: CORTEX-M3=142MHz,PCLK0=71MHz,PCLK1=71MHz
>> Board: M2S-FG484-SOM Rev 1A, www.emcraft.com <http://www.emcraft.com>
>>
>> DRAM: 64 MB
>> *** Warning - bad CRC, using default environment
>>
>> In: serial
>> Out: serial
>> Err: serial
>> Net: M2S_MAC
>> Hit any key to stop autoboot: 0
>> 16384 KiB S25FL128P_64K at 0:0 is now current device
>> ## Booting kernel from Legacy Image at a0007fc0 ...
>> Image Name: dtskernel
>> Image Type: ARM Linux Kernel Image (uncompressed)
>> Data Size: 2664224 Bytes = 2.5 MB
>> Load Address: a0008000
>> Entry Point: a0008001
>> Verifying Checksum ... OK
>> Loading Kernel Image ... OK
>> OK
>>
>> Starting kernel ...
>>
>> NVIC: Bad read offset 0xd74
>> [ 0.000000] Booting Linux on physical CPU 0x0
>> [ 0.000000] Linux version 4.5.0-00001-g3aa90e8-dirty
>> (address@hidden) (gcc version 5.4.0 (GCC) ) #102
>> PREEMPT Tue May 16 19:43:40 IST 2017
>> [ 0.000000] CPU: ARMv7-M [410fc231] revision 1 (ARMv7M),
>> cr=00000000
>> [ 0.000000] CPU: unknown data cache, unknown instruction cache
>> [ 0.000000] Machine model: Microsemi SmartFusion 2 development
>> board
>> [ 0.000000] Kernel command line: console=ttyS0,115200n8 panic=10
>> address@hidden earlyprintk
>> [ 0.000000] Memory: 62204K/65536K available (1472K kernel code,
>> 73K rwdata, 652K rodata, 400K init, 120K bss, 3332K reserved, 0K
>> cma-reserved)
>> [ 0.000000] NR_IRQS:16 nr_irqs:16 16
>> [ 0.001178] sched_clock: 32 bits at 83MHz, resolution 12ns, wraps
>> every 25873297401ns
>> [ 0.003085] clocksource: msf2_clocksource: mask: 0xffffffff
>> max_cycles: 0xffffffff, max_idle_ns: 23027234290 ns
>> [ 0.009732] timer at 40004000, irq=16
>> [ 0.014475] Calibrating delay loop... 442.36 BogoMIPS (lpj=2211840)
>> [ 0.653685] Serial: 8250/16550 driver, 1 ports, IRQ sharing
>> disabled
>> [ 0.690789] console [ttyS0] disabled
>> [ 0.696659] 40000000.serial: ttyS0 at MMIO 0x40000000 (irq = 17,
>> base_baud = 5187500) is a 16550
>> [ 0.702725] console [ttyS0] enabled
>> [ 0.826251] Freeing unused kernel memory: 400K (a021c000 -
>> a0280000)
>> init started: BusyBox v1.24.1 (2017-05-15 09:57:00 IST)
>> ~ #
>>
>> (qemu) info mtree
>> address-space: cpu-memory
>> 0000000000000000-ffffffffffffffff (prio 0, i/o): armv7m-container
>> 0000000000000000-ffffffffffffffff (prio -1, i/o): system
>> 0000000000000000-000000000003ffff (prio 0, i/o): alias
>> MSF2.eNVM.alias @MSF2.eNVM 0000000000000000-000000000003ffff
>> 0000000020000000-000000002000ffff (prio 0, ram): MSF2.eSRAM
>> 0000000040000000-000000004000001f (prio 0, i/o): serial
>> 0000000040001000-000000004000103f (prio 0, i/o): mss-spi
>> 0000000040004000-000000004000402f (prio 0, i/o): mss-timer
>> 0000000040011000-000000004001103f (prio 0, i/o): mss-spi
>> 0000000040038000-00000000400382ff (prio 0, i/o): msf2-sysreg
>> 0000000060000000-000000006003ffff (prio 0, rom): MSF2.eNVM
>> 00000000a0000000-00000000a3ffffff (prio 0, ram): ddr-ram
>> 0000000022000000-0000000023ffffff (prio 0, i/o): bitband
>> 0000000042000000-0000000043ffffff (prio 0, i/o): bitband
>> 00000000e000e000-00000000e000efff (prio 0, i/o): nvic
>> 00000000e000e000-00000000e000efff (prio 0, i/o): nvic_sysregs
>> 00000000e000e010-00000000e000e0ef (prio 1, i/o): systick
>>
>> (qemu) info qtree
>> bus: main-system-bus
>> type System
>> dev: msf2-soc, id ""
>> part-name = "M2S010"
>> eNVM-size = 262144 (0x40000)
>> eSRAM-size = 65536 (0x10000)
>> m3clk = 142000000 (0x876bf80)
>> apb0div = 2 (0x2)
>> apb1div = 2 (0x2)
>> dev: mss-spi, id ""
>> gpio-out "sysbus-irq" 2
>> mmio 0000000040011000/0000000000000040
>> bus: spi
>> type SSI
>> dev: mss-spi, id ""
>> gpio-out "sysbus-irq" 2
>> mmio 0000000040001000/0000000000000040
>> bus: spi
>> type SSI
>> dev: s25sl12801, id ""
>> gpio-in "ssi-gpio-cs" 1
>> nonvolatile-cfg = 36863 (0x8fff)
>> spansion-cr1nv = 0 (0x0)
>> spansion-cr2nv = 1 (0x1)
>> spansion-cr3nv = 2 (0x2)
>> spansion-cr4nv = 16 (0x10)
>> drive = "mtd0"
>> dev: mss-timer, id ""
>> gpio-out "sysbus-irq" 2
>> clock-frequency = 71000000 (0x43b5fc0)
>> mmio 0000000040004000/0000000000000030
>> dev: msf2-sysreg, id ""
>> apb0divisor = 2 (0x2)
>> apb1divisor = 2 (0x2)
>> mmio 0000000040038000/0000000000000300
>>
>> So far:
>> Tested-by: Philippe Mathieu-Daudé <address@hidden
>> <mailto:address@hidden>>
>>
>>
>> Thanks for testing.
>>
>>
>> Just some comments (no need to fix):
>>
>>
>> Thank you, I will look into these errors once the patchset gets into the
>> tree.
>>
>>
>> M2S-FG484-SOM> reset
>> resetting ...
>> M2S-FG484-SOM>
>>
>> Hmm no reset, I was expecting some unimp/guest-error warning.
>>
>> M2S-FG484-SOM> tftpboot
>> m2s_eth_init: FIFO initialization timeout
>> *** m2s_mac_dump_regs FIFO init:
>> DMA TX CTRL=00000000;DESC=00000000;STAT=00000000
>> DMA RX CTRL=00000000;DESC=00000000;STAT=00000000
>> DMA IRQ 00000000/00000000
>> CFG1=00000000;CFG2=00000000;IFG=00000000;HD=00000000;MFL=00000000
>> IFCTRL=00000000;IFSTAT=00000000;ADR1=00000000;ADR2=00000000
>> FIFO CFG 00000000/00000000/00000000/00000000/00000000/00000000/
>> FIFO ACC
>>
>> 00000000/00000000/00000000/00000000/00000000/00000000/00000000/00000000/
>>
>> (same unimp/guest-error warning)
>>
>> If device is not implemented how do I print warning when guest access that
>> device?
>
>
> in hw/arm/msf2-soc.c:
>
> create_unimplemented_device("emac", 0x40041000, 0x1000);
>
> and while here:
>
> create_unimplemented_device("i2c_0", 0x40002000, 0x1000);
> create_unimplemented_device("i2c_1", 0x40012000, 0x1000);
> create_unimplemented_device("rtc", 0x40017000, 0x1000);
> create_unimplemented_device("usb", 0x40043000, 0x1000);
>
> Then you'll see unimp access running "qemu-system-arm -d unimp"
>
> This can be another patch although.
Once you have all the devices there you can enable bus access errors
as well. That's a future patch set though.
Thanks,
Alistair
>
> Regards,
>
> Phil.
- Re: [Qemu-arm] [Qemu devel v8 PATCH 5/5] msf2: Add Emcraft's Smartfusion2 SOM kit, (continued)
Re: [Qemu-arm] [Qemu devel v8 PATCH 0/5] Add support for Smartfusion2 SoC, Philippe Mathieu-Daudé, 2017/09/07