Port-arm archive

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

Re: Freescale i.MX7 support added



Hi Ryo,
the Freescale i.MX7 is very interesting because could
allow an high level OS and a realtime processor at the same
time. Sometime you need to build an appliance with real
time architecture for sensors or stepper motors control for
instance and you need to process the data within an high level
OS and post them via TLS on the cloud, this is a typical
project I am used to see on my bench.
It would be nice to have an hardware abstraction interface
inside NetBSD to serve the c code firmware for the Cortex-M4
core, it will be extremely useful a way to program it and make
it running from inside the high level OS. I know it is a lot
of work but it could be very useful and I am ready to help.
I hope this makes sense for the most.

Thank you and best luck
Fabio Balzano.




On 05/17/2016 07:57 AM, Ryo Shimizu wrote:
> 
> Hi all
> 
> I have commited about adding support Freescale i.MX7 processor
> and Atmark Techno Armadillo-IoT G3 board.
>  - http://armadillo.atmark-techno.com/armadillo-iot-g3
>    (only available in Japanese)
> 
> UART/Ethernet/USB/SDHC/RTC/GPIO/WDOG and MULTIPROCESSOR works.
> 
> 
> And now, i.MX7Dual processor has two Cortex-A7 cores and one Cortex-M4 core.
> An M4 core is slower than A7, and more importantly, it has no MMU.
> I don't know how/what to use M4 core on netbsd.
> Does anyone have a nice idea/framework?  or for blinking LED? ;-)
> 
> 
> [dmesg]
> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
>     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016
>     The NetBSD Foundation, Inc.  All rights reserved.
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>     The Regents of the University of California.  All rights reserved.
> 
> NetBSD 7.99.29 (ARMADILLO-IOT-G3) #0: Fri May 13 02:38:10 JST 2016
>         ryo@moveq:/usr/src/sys/arch/evbarm/compile/ARMADILLO-IOT-G3
> total memory = 512 MB
> avail memory = 500 MB
> sysctl_createv: sysctl_create(machine_arch) returned 17
> mainbus0 (root)
> cpu0 at mainbus0 core 0: 792 MHz Cortex-A7 r0p5 (Cortex V7A core)
> cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu0: 32KB/32B 2-way L1 VIPT Instruction cache
> cpu0: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
> cpu0: 512KB/64B 8-way write-through L2 PIPT Unified cache
> vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
> cpu1 at mainbus0 core 1
> armperiph0 at mainbus0
> armgic0 at armperiph0: Generic Interrupt Controller, 160 sources (151 valid)
> armgic0: 32 Priorities, 128 SPIs, 7 PPIs, 16 SGIs
> armgtmr0 at armperiph0: ARMv7 Generic 64-bit Timer (8000 kHz)
> armgtmr0: interrupting on irq 27
> axi0 at mainbus0: Advanced eXtensible Interface
> imxccm0 at axi0 addr 0x30380000: Clock Control Module
> imxocotp0 at axi0 addr 0x30350000: On-Chip OTP Controller
> imxocotp0: OCOTP_VERSION 5.0.0
> imxgpio0 at axi0 addr 0x30260000 intr 96 irqbase 256: interrupts 256..287
> imxgpio1 at axi0 addr 0x30250000 intr 98 irqbase 288: interrupts 288..319
> imxgpio2 at axi0 addr 0x30240000 intr 100 irqbase 320: interrupts 320..351
> imxgpio3 at axi0 addr 0x30230000 intr 102 irqbase 352: interrupts 352..383
> imxgpio4 at axi0 addr 0x30220000 intr 104 irqbase 384: interrupts 384..415
> imxgpio5 at axi0 addr 0x30210000 intr 106 irqbase 416: interrupts 416..447
> imxgpio6 at axi0 addr 0x30200000 intr 108 irqbase 448: interrupts 448..479
> imxiomux0 at axi0 addr 0x30330000: IOMUX Controller
> imxuart4 at axi0 addr 0x30a70000 intr 62
> imxuart4: console
> sdhc0 at axi0 addr 0x30b40000 intr 54: Ultra Secured Digial Host Controller
> sdhc0: SDHC 3.0, rev 0, 32-bit ADMA2, 180000 kHz, HS SDR50 DDR50 1.8V 3.0V 3.3V, re-tuning mode 1, 4096 byte blocks
> sdmmc0 at sdhc0 slot 0
> sdhc2 at axi0 addr 0x30b60000 intr 56: Ultra Secured Digial Host Controller
> sdhc2: SDHC 3.0, rev 0, 32-bit ADMA2, 180000 kHz, HS SDR50 DDR50 1.8V 3.0V 3.3V, re-tuning mode 1, 4096 byte blocks
> sdmmc1 at sdhc2 slot 0
> imxwdog0 at axi0 addr 0x30280000 intr 110: i.MX Watchdog Timer, default period is 10 seconds
> imxwdog1 at axi0 addr 0x30290000 intr 111: i.MX Watchdog Timer, default period is 10 seconds
> imxwdog2 at axi0 addr 0x302a0000 intr 42: i.MX Watchdog Timer, default period is 10 seconds
> imxwdog3 at axi0 addr 0x302b0000 intr 141: i.MX Watchdog Timer, default period is 10 seconds
> enet1 at axi0 addr 0x30bf0000 intr 132: Gigabit Ethernet Controller
> enet1: Ethernet address 00:11:0c:1b:80:2d
> ukphy0 at enet1 phy 0: OUI 0x008083, model 0x0013, rev. 1
> ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
> imxusbc0 at axi0 addr 0x30b10000: Universal Serial Bus Controller
> ehci0 at imxusbc0 unit 0 intr 75: i.MX USB Controller
> ehci0: id=5 revision=161 HCI revision=0x100
> ehci0: 1 host port, device capable, 8 endpoints
> usb0 at ehci0: USB revision 2.0
> imxsnvs0 at axi0 addr 0x30370000: Secure Non-Volatile Storage
> cpu_boot_secondary_processors: writing mbox with 0x2
> cpu_hatch(cpu1):  vectors vbar=0x8001e640 stacks tlbcpu1: 792 MHz Cortex-A7 r0p5 (Cortex V7A core)
> cpu1: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu1: 32KB/32B 2-way L1 VIPT Instruction cache
> cpu1: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
> cpu1: 512KB/64B 8-way write-through L2 PIPT Unified cache
>  vfpvfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
>  interrupts md(0x8000d200) done!
> gpio0 at imxgpio0: 32 pins
> gpio1 at imxgpio1: 32 pins
> gpio2 at imxgpio2: 32 pins
> gpio3 at imxgpio3: 32 pins
> gpio4 at imxgpio4: 32 pins
> gpio5 at imxgpio5: 32 pins
> gpio6 at imxgpio6: 32 pins
> uhub0 at usb0: i.MX EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
> ld0 at sdmmc0: <0x83:0x4e43:NCard:0x10:0x21267bf7:0x0fa>
> ld0: 30672 MB, 7789 cyl, 128 head, 63 sec, 512 bytes/sect x 62816256 sectors
> ld0: 4-bit width, DDR50, 50.000 MHz
> boot device: <unknown>
> root device: enet1
> dump device: 
> file system (default generic): 
> root on enet1
> nfs_boot: trying DHCP/BOOTP
> umass0 at uhub0 port 1 configuration 1 interface 0
> umass0: Generic USB Mass Storage Device, rev 2.00/2.20, addr 2
> scsibus0 at umass0: 2 targets, 1 lun per target
> sd0 at scsibus0 target 0 lun 0: <Mass, Storage Device, 0\0000> disk fixed
> sd0: 698 GB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 1465149166 sectors
> nfs_boot: DHCP next-server: 0.0.0.0
> nfs_boot: my_name=g3
> nfs_boot: my_domain=nerv.org
> nfs_boot: my_addr=172.17.4.88
> nfs_boot: my_mask=255.255.0.0
> nfs_boot: gateway=172.17.4.40
> root on 172.17.4.40:/src/boot/pxe-g3
> root file system type: nfs
> kern.module.path=/stand/evbarm/7.99.29/modules
> init path (default /sbin/init): 
> init: trying /sbin/init
> Fri May 13 02:54:01 JST 2016
> Not checking /: fs_passno = 0 in /etc/fstab
> Starting file system checks:
> random_seed: /var/db/entropy-file: Not present
> Setting tty flags.
> Setting sysctl variables:
> ddb.onpanic: 1 -> 0
> Starting network.
> Hostname: armadillo-g3
> IPv6 mode: host
> Configuring network interfaces:.
> Adding interface aliases:.
> add net default: gateway 172.17.4.1
> Waiting for DAD to complete for statically configured addresses...
> Building databases: dev, utmp, utmpx.
> Starting syslogd.
> Mounting all file systems...
> Clearing temporary files.
> Creating a.out runtime link editor directory cache.
> Checking quotas: done.
> /etc/rc: WARNING: No swap space configured!
> /etc/rc.d/swap2 exited with code 1
> Starting virecover.
> Checking for core dump...
> savecore: no core dump (no dumpdev)
> Starting local daemons:.
> Updating motd.
> Starting sshd.
> Starting inetd.
> Starting cron.
> The following components reported failures:
>     /etc/rc.d/swap2
> See /var/run/rc.log for more information.
> Fri May 13 02:54:16 JST 2016
> 
> NetBSD/evbarm (armadillo-g3) (console)
> 
> login: root
> May 13 02:50:44 armadillo-g3 login: ROOT LOGIN (root) on tty console
> Last login: Mon May  9 15:41:37 2016 on console
> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
>     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016
>     The NetBSD Foundation, Inc.  All rights reserved.
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>     The Regents of the University of California.  All rights reserved.
> 
> NetBSD 7.99.29 (ARMADILLO-IOT-G3) #0: Fri May 13 02:38:10 JST 2016
> 
> Welcome to NetBSD!
> 
> We recommend that you create a non-root account and use su(1) for root access.
> 
> armadillo-g3# uname -a
> NetBSD armadillo-g3 7.99.29 NetBSD 7.99.29 (ARMADILLO-IOT-G3) #0: Fri May 13 02:38:10 JST 2016  ryo@moveq:/usr/src/sys/arch/evbarm/compile/ARMADILLO-IOT-G3 evbarm
> 
> armadillo-g3# sysctl hw machdep
> hw.machine = evbarm
> hw.model = Cortex-A7 r0p5 (Cortex V7A core)
> hw.ncpu = 2
> hw.byteorder = 1234
> hw.physmem = 536870912
> hw.usermem = 536862720
> hw.pagesize = 8192
> hw.disknames = ld0 sd0
> hw.machine_arch = earmv7hf
> hw.alignbytes = 7
> hw.cnmagic = \x27\x01
> hw.physmem64 = 536870912
> hw.usermem64 = 536862720
> hw.iostatnames = ld0 sd0 nfs0 nfs1 nfs2
> hw.ncpuonline = 2
> hw.uhso.autoswitch = 1
> hw.firmware.path = /libdata/firmware:/usr/libdata/firmware:/usr/pkg/libdata/firmware:/usr/pkg/libdata
> machdep.debug = 0
> machdep.powersave = 1
> machdep.cpu_arch = 7A
> machdep.cpu_id = 1091551349
> machdep.fpu_id = 1090662517
> machdep.fpu_present = 1
> machdep.hwdiv_present = 1
> machdep.neon_present = 1
> machdep.simd_present = 1
> machdep.simdex_present = 1
> machdep.synchprim_present = 32
> machdep.printfataltraps = 0
> machdep.unaligned_sigbus = 0
> machdep.kmpages = 655
> machdep.imx7.frequency.pll.arm = 792000000
> machdep.imx7.frequency.pll.system = 480000000
> machdep.imx7.frequency.pll.enet = 1000000000
> machdep.imx7.frequency.pll.audio = 162000000
> machdep.imx7.frequency.pll.video = 162000000
> machdep.imx7.frequency.pll.ddr = 528000000
> machdep.imx7.frequency.pll.usb = 480000000
> machdep.imx7.frequency.arm_a7 = 792000000
> machdep.imx7.frequency.arm_m4 = 240000000
> 
> armadillo-g3# cpuctl identify 0
> cpu0: isa features: Swap, Bitcount, Bitfield, CmpBranch, Coproc=0, Debug
> cpu0: isa features: Divde=2, Endian, Except, Except_AR, Extend=2, IfThen
> cpu0: isa features: Immediate, Interwork=3, Jazelle, LoadStore, MemHint=4
> cpu0: isa features: MultAccessInt=0, Mult=2, MultS=3, MultU=2, PSR_AR
> cpu0: isa features: Reversal=2, Saturate, SIMD=3, SVC, SynchPrim=2, TabBranch
> cpu0: isa features: ThumbCopy, TrueNOP, ThumbEE_Extn, Unpriv=2, WithShifts=4
> cpu0: isa features: Writeback, SMC, Barrier, SynchPrim_frac, PSR_M, SWP
> cpu0: memory model: VMSA-Support=5, Outermost-Shareablity=1
> cpu0: memory model: Shareability-Levels=1, Auxilary-Registers=1
> cpu0: memory model: Innermost-Shareability=1, Branch-Predictor=4
> cpu0: memory model: Unified-TLB=4, Mem-Barrier=2, WFI-Stall=1
> cpu0: memory model: Cache-Maintenance-MVA=1, Cache-Maintenance-Set/Way=1
> cpu0: memory model: BP-Maintenance=2, Maintenance-Broadcast=2
> cpu0: memory model: Coherent-Tablewalk=1, Cached-Memory-Size=2
> cpu0: processor features: ThumbEE=1, Jazelle=3, Thumb=1, ARM=1, Programmer=1
> cpu0: processor features: Security=1, M-profile=0, Virtualization=1
> cpu0: processor features: Generic-Timer=1
> cpu0: media and VFP features: ASIMD-Registers=2, Single-Precision=2
> cpu0: media and VFP features: Double-Precision=2, Divide=1, Square-Root=1
> cpu0: media and VFP features: VFP-Rounding-Modes=1, Flush-To-Zero=1
> cpu0: media and VFP features: Default-NaN=1, ASIMD-Load/Store=1
> cpu0: media and VFP features: ASIMD-Integer=1, ASIMD-SPFP=1, ASIMD-HPFP=1
> cpu0: media and VFP features: VFP-HPFP=1, ASIMD-FMAC=1
> 
> --
> ryo shimizu
> 

-- 

MY PGP PUBLIC KEY ID: 29BF4AEB
---


Home | Main Index | Thread Index | Old Index