ARMv8 (AArch64) port

C programming, build, interpreter/VM.
Target audience: MicroPython Developers.
Post Reply
pfalcon
Posts: 1155
Joined: Fri Feb 28, 2014 2:05 pm

ARMv8 (AArch64) port

Post by pfalcon » Thu Nov 12, 2015 8:01 pm

I built and tested MicroPython on a DragonBoard 410c board (of 96Board initiative), running a 64-bit ARMv8 processor. The latest git master builds out of the box and passes the testsuite. (Native and Viper codegenerators are of course not supported as they weren't coded.) This is second tested 64-bit target for MicroPython, after x86_64.
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/

User avatar
platforma
Posts: 258
Joined: Thu May 28, 2015 5:08 pm
Location: Japan

Re: ARMv8 (AArch64) port

Post by platforma » Mon Dec 14, 2015 4:00 pm

Got my 410c the other day, planning to try build/flash and some IO experiments maybe.
@pfalcon, latest master flashed with no problems at all for you?

pfalcon
Posts: 1155
Joined: Fri Feb 28, 2014 2:05 pm

Re: ARMv8 (AArch64) port

Post by pfalcon » Fri Dec 18, 2015 5:29 pm

I didn't work on it since the original post. And to clarify, I of course ran unix port, under Linux. So, I didn't "flash" it, just build and ran directly on the board.
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/

pfalcon
Posts: 1155
Joined: Fri Feb 28, 2014 2:05 pm

Re: ARMv8 (AArch64) port

Post by pfalcon » Sat May 14, 2016 1:05 pm

Recently, a build issue was fixed in the master of AArch64. And some examples on accessing GPIO hardware registers on Dragonboard410c from userspace were posted: https://github.com/pfalcon/snapdragon410-mmio-gpio
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/

pfalcon
Posts: 1155
Joined: Fri Feb 28, 2014 2:05 pm

Re: ARMv8 (AArch64) port

Post by pfalcon » Wed Jun 15, 2016 11:49 am

Believe it or not, but this "cute embedded nonsense hack" (tm) caught attention of Qualcomm, the vendor of Dragonboard, who even wanted to feature it in their blog: http://forum.micropython.org/viewtopic.php?f=8&t=2038
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/

joehunt588
Posts: 26
Joined: Wed Jul 27, 2016 5:06 am

Re: ARMv8 (AArch64) port

Post by joehunt588 » Tue Sep 13, 2016 12:59 am

hello,
i also interest to do upython on DragonBoard410c, may i know where i can get reference to build fw for this board ,can i use this FW :http://micropython.org/download/ or can link me a tutorial to build this board FW,

User avatar
dhylands
Posts: 3821
Joined: Mon Jan 06, 2014 6:08 pm
Location: Peachland, BC, Canada
Contact:

Re: ARMv8 (AArch64) port

Post by dhylands » Tue Sep 13, 2016 4:02 am

Code: Select all

git clone https://github.com/micropython/micropython
cd micropython/unix
CROSS_COMPILE=arm-linux-gnuabi- make
You may need to tweak the CROSS_COMPILE portion depending on the toolchain you're actually using,
linux running on the DragonBoard is essentially the same as linux running on your host except its running a different CPU.

joehunt588
Posts: 26
Joined: Wed Jul 27, 2016 5:06 am

Re: ARMv8 (AArch64) port

Post by joehunt588 » Tue Sep 13, 2016 6:54 am

Thanks dhylands ;) ,
if i using this debian for DragonBoard 410c https://github.com/96boards/documentati ... nd-Android do i need to tweak the cross compiler?,is there any tutorial or link i can learn to tweak?,and if cross compiler is success to call i2c can i do this :-

from pyb import I2C
i2c = I2C(1)
i2c = I2C(1, I2C.MASTER)
i2c.init(I2C.MASTER, baudrate=20000)
i2c.init(I2C.SLAVE, addr=0x42)
i2c.deinit()
:?:

User avatar
platforma
Posts: 258
Joined: Thu May 28, 2015 5:08 pm
Location: Japan

Re: ARMv8 (AArch64) port

Post by platforma » Tue Sep 13, 2016 8:29 am

joehunt588 wrote:if i using this debian for DragonBoard 410
What Dave was referring to is cross-compiling the code on your host OS, to execute on the DragonBoard, which is ARM architecture. Thus you have to cross-compile in order for it to run, and you need an ARM compiler, for example arm-linux-gnueabi, you can find lots of info about it online. The best tutorial is to run what Dave suggested and see if any issues arise, and read the Makefile of course!

To answer the second question, no, I2C will not magically run with DragonBoard GPIO, you would have to write your own wrapper. It will merely do everything the current micropython unix port does.

Unfortunately I had no progress on the board and it's currently just gathering dust on my shelf.

joehunt588
Posts: 26
Joined: Wed Jul 27, 2016 5:06 am

Re: ARMv8 (AArch64) port

Post by joehunt588 » Wed Sep 14, 2016 12:40 am

Now i understand,thank you platforma,its time for me to learn c also :D

Thank you guy

Post Reply