
Exploring AArch64 assembler - b3h3moth
http://thinkingeek.com/2016/10/08/exploring-aarch64-assembler-chapter1/
======
Lichtso
For those who are interested in running your software on AArch64 hardware
directly, without any additional firmware or operating system in between, I've
developed a boot loader and tool chain to test and execute unikernels on a
Pine64:

[https://github.com/Lichtso/UnikernelExperiments](https://github.com/Lichtso/UnikernelExperiments)

~~~
lgeek
Hmm, what are the advantages of using this bootloader over U-Boot? Or is it
simply that U-Boot doesn't support Ethernet or some other peripherals on the
A64 SoC?

~~~
Lichtso
On one hand it is very light weight: less than 4k LOC and 16 kB executable
(which fits completely in the first stage of SRAM), so it is easier to grasp
compared to U-Boot:
[https://github.com/trini/u-boot/search?q=sunxi&type=Code](https://github.com/trini/u-boot/search?q=sunxi&type=Code)

On the other hand, it has different goals and is just meant to load a blob of
instructions over ethernet (faster evaluation cycle) not an entire Linux
kernel with all the POSIX / UNIX stuff from SD. So you have far more control
but are also on a lower level, somewhat like developing for a more powerful
Arduino.

------
dpc_pw
This article is very short and shallow. I mean... you can apply it to any
architecture that Qemu supports (and there are many). Altogether there are 2
assembler instructions in the whole article. Not much of an exploration...

Qemu usermode emulation is nice, but the full-hardware emulation is way more
interesting. Eg. in
[https://github.com/dpc/titanos](https://github.com/dpc/titanos) \- toy kernel
for Aarch64 written in our lord-and-saviour programming language: Rust, I use
Qemu to run kernel and unittests for that kernel. With Qemu gdb stubs it's
like having a software-defined hardware platform with a JTAG debugger
attached. `make run` and it runs - no need to plug cables and press reset
buttons.

~~~
cikey
nice, from "i dont like this article" to "rust advertising" in 5 sentences?

------
faragon
I recommend the Pine 64 board. I bought one (2GB RAM, gigabit ethernet model,
for 29$ [1]), and despite running its 4 cores at just 1.2GHz, it is quite
speedy, and rock solid running Debian 24/7 as ARM64 build server.

[1] [https://www.pine64.org/](https://www.pine64.org/) (I'm not related to
Pine, just a satisfied user)

~~~
conradev
I wish I had know about the Pine 64! I ended up buying an ODROID-C2
([http://www.hardkernel.com/main/products/prdt_info.php](http://www.hardkernel.com/main/products/prdt_info.php))
when looking for an AArch64 board, which is pretty similar.

~~~
CountSessine
I think you're better off with the Odroid and it's Amlogic CPU - the Pine 64
has an Allwinner CPU. You'll have fewer headaches getting kernels to build for
and run on the Amlogic chip.

------
wyldfire
Another cool thing you can do is setup the kernel's binfmt handler to run the
user-mode qemu emulation automatically.

------
ndesaulniers
> single-board computers that support the 64-bit mode of ARMv8 are less common

hey, you can use Nexus 5x, 6p or Pixel phones! I've been meaning to write a
blog post about this.

~~~
mynameislegion
What about iPhones?

