Message ID | 1586063624-13375-1-git-send-email-sundeep.lkml@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Add SmartFusion2 EMAC block | expand |
Hi Sundeep, On 4/5/20 7:13 AM, sundeep.lkml@gmail.com wrote: > From: Subbaraya Sundeep <sundeep.lkml@gmail.com> > > This patch set emulates Ethernet MAC block > present in Microsemi SmartFusion2 SoC. > > 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 > / # Thanks for the use case example! Do you mind adding it to our test suite? There are various examples in tests/acceptance/boot_linux_console.py. Thanks! Phil. > > Subbaraya Sundeep (2): > hw/net: Add Smartfusion2 emac block > msf2: Add EMAC block to SmartFusion2 SoC > > MAINTAINERS | 2 + > hw/arm/msf2-soc.c | 21 +- > hw/net/Makefile.objs | 1 + > hw/net/msf2-emac.c | 556 +++++++++++++++++++++++++++++++++++++++++++++ > include/hw/arm/msf2-soc.h | 3 + > include/hw/net/msf2-emac.h | 50 ++++ > 6 files changed, 632 insertions(+), 1 deletion(-) > create mode 100644 hw/net/msf2-emac.c > create mode 100644 include/hw/net/msf2-emac.h >
Hi Philippe, On Mon, Apr 6, 2020 at 3:54 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > > Hi Sundeep, > > On 4/5/20 7:13 AM, sundeep.lkml@gmail.com wrote: > > From: Subbaraya Sundeep <sundeep.lkml@gmail.com> > > > > This patch set emulates Ethernet MAC block > > present in Microsemi SmartFusion2 SoC. > > > > 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 > > / # > > Thanks for the use case example! > > Do you mind adding it to our test suite? There are various examples in > tests/acceptance/boot_linux_console.py. Sure I will add and send next spin. Thanks, Sundeep > > Thanks! > > Phil. > > > > Subbaraya Sundeep (2): > > hw/net: Add Smartfusion2 emac block > > msf2: Add EMAC block to SmartFusion2 SoC > > > > MAINTAINERS | 2 + > > hw/arm/msf2-soc.c | 21 +- > > hw/net/Makefile.objs | 1 + > > hw/net/msf2-emac.c | 556 +++++++++++++++++++++++++++++++++++++++++++++ > > include/hw/arm/msf2-soc.h | 3 + > > include/hw/net/msf2-emac.h | 50 ++++ > > 6 files changed, 632 insertions(+), 1 deletion(-) > > create mode 100644 hw/net/msf2-emac.c > > create mode 100644 include/hw/net/msf2-emac.h > > >
From: Subbaraya Sundeep <sundeep.lkml@gmail.com> This patch set emulates Ethernet MAC block present in Microsemi SmartFusion2 SoC. 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 (2): hw/net: Add Smartfusion2 emac block msf2: Add EMAC block to SmartFusion2 SoC MAINTAINERS | 2 + hw/arm/msf2-soc.c | 21 +- hw/net/Makefile.objs | 1 + hw/net/msf2-emac.c | 556 +++++++++++++++++++++++++++++++++++++++++++++ include/hw/arm/msf2-soc.h | 3 + include/hw/net/msf2-emac.h | 50 ++++ 6 files changed, 632 insertions(+), 1 deletion(-) create mode 100644 hw/net/msf2-emac.c create mode 100644 include/hw/net/msf2-emac.h