[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu devel PATCH v5 0/3] Add SmartFusion2 EMAC block
From: |
sundeep . lkml |
Subject: |
[Qemu devel PATCH v5 0/3] Add SmartFusion2 EMAC block |
Date: |
Tue, 14 Apr 2020 20:32:28 +0530 |
From: Subbaraya Sundeep <address@hidden>
This patch set emulates Ethernet MAC block
present in Microsemi SmartFusion2 SoC.
v5:
As per Philippe comments:
Returned size in receive function
Added link property to pass DMA memory
Used FIELD() APIs
Added mac_addr in emac state
Used FIELD_EX32 and FIELD_DP32 APIs
Simplified if else logics in emac_write/read
v4:
Added loop back as per Jason's comment
v3:
Added SmartFusion2 ethernet test to tests/acceptance
v2:
No changes. Fixed Signed-off mail id in patch 2/2
Testing:
1. Download u-boot.bin, uImage and msf2-devkit.dtb from
https://github.com/Subbaraya-Sundeep/qemu-test-binaries.git
2. Copy uImage and msf2-devkit.dtb to suitable Qemu tftp directory
3. Launch Qemu by
./arm-softmmu/qemu-system-arm -M emcraft-sf2 -serial mon:stdio -kernel \
u-boot.bin -display none -nic user,tftp=<qemu tftp directory>
Example:
./arm-softmmu/qemu-system-arm -M emcraft-sf2 -serial mon:stdio -kernel u-boot
-display none -nic user,tftp=/home/hyd1358/qemu_tftp
U-Boot 2010.03-00000-ga7695d6 (Apr 04 2020 - 15:07:27)
CPU : SmartFusion2 SoC (Cortex-M3 Hard IP)
Freqs: CORTEX-M3=142MHz,PCLK0=71MHz,PCLK1=71MHz
Board: M2S-FG484-SOM Rev 1A, 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: 3 0
M2S-FG484-SOM> run netboot
Using M2S_MAC device
TFTP from server 10.0.2.2; our IP address is 10.0.2.15
Filename 'uImage'.
Load address: 0xa0007fc0
Loading: *#################################################################
#################################################################
#################################################################
###############################################################
done
Bytes transferred = 3681568 (382d20 hex)
Using M2S_MAC device
TFTP from server 10.0.2.2; our IP address is 10.0.2.15
Filename 'msf2-devkit.dtb'.
Load address: 0xa0000200
Loading: *#
done
Bytes transferred = 1712 (6b0 hex)
## Booting kernel from Legacy Image at a0007fc0 ...
Image Name:
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3681504 Bytes = 3.5 MB
Load Address: a0008000
Entry Point: a0008001
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.5.0-gb0e5502-dirty (hyd1358@hyd1358) (gcc
version 4.4.1 (Sourcery G++ Lite 2010q1-189) ) #85 PREEMPT Sat Apr 4 23:26:40
IST 2020
[ 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] bootconsole [earlycon0] enabled
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total
pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,115200n8 panic=10
mem=64M@0xa0000000 earlyprintk
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 61212K/65536K available (1612K kernel code, 75K rwdata,
680K rodata, 1224K init, 120K bss, 4324K reserved, 0K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0x00000000 - 0x00001000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0x00000000 - 0xffffffff (4095 MB)
[ 0.000000] lowmem : 0xa0000000 - 0xa4000000 ( 64 MB)
[ 0.000000] modules : 0xa0000000 - 0xa0800000 ( 8 MB)
[ 0.000000] .text : 0xa0008000 - 0xa02453e8 (2293 kB)
[ 0.000000] .init : 0xa0246000 - 0xa0378000 (1224 kB)
[ 0.000000] .data : 0xa0378000 - 0xa038ace0 ( 76 kB)
[ 0.000000] .bss : 0xa038ace0 - 0xa03a8ea0 ( 121 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
.
.
.
[ 0.445184] Found M2S MAC at 0x40041000, irq 18
[ 0.448810] libphy: msf2 MII bus: probed
[ 0.527047] ipip: IPv4 over IPv4 tunneling driver
[ 0.532367] NET: Registered protocol family 10
[ 0.542307] sit: IPv6 over IPv4 tunneling driver
[ 0.544655] NET: Registered protocol family 17
[ 0.565395] Freeing unused kernel memory: 1224K (a0246000 - a0378000)
init started: BusyBox v1.31.1 (2020-01-25 20:01:06 IST)
starting pid 26, tty '': '/etc/rc'
starting pid 31, tty '/dev/ttyS0': '/bin/hush -i'
BusyBox v1.31.1 (2020-01-25 20:01:06 IST) hush - the humble shell
Enter 'help' for a list of built-in commands.
/ # ifconfig eth0 10.0.2.15
[ 11.116091] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
/ # [ 11.653634] eth0: link up (100/full)
[ 11.655246] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
/ # ls
dev proc sys etc usr bin tmp sbin mnt init
/ # tftp -gr uImage 10.0.2.2
[ 40.780983] random: nonblocking pool is initialized
/ # ls
dev sys usr tmp mnt uImage
proc etc bin sbin init
/ #
Subbaraya Sundeep (3):
hw/net: Add Smartfusion2 emac block
msf2: Add EMAC block to SmartFusion2 SoC
tests/boot_linux_console: Add ethernet test to SmartFusion2
MAINTAINERS | 2 +
hw/arm/msf2-soc.c | 26 +-
hw/net/Makefile.objs | 1 +
hw/net/msf2-emac.c | 566 +++++++++++++++++++++++++++++++++
include/hw/arm/msf2-soc.h | 2 +
include/hw/net/msf2-emac.h | 53 +++
tests/acceptance/boot_linux_console.py | 15 +-
7 files changed, 658 insertions(+), 7 deletions(-)
create mode 100644 hw/net/msf2-emac.c
create mode 100644 include/hw/net/msf2-emac.h
--
2.7.4
- [Qemu devel PATCH v5 0/3] Add SmartFusion2 EMAC block,
sundeep . lkml <=