Hacker News new | past | comments | ask | show | jobs | submit login
Exploring AArch64 assembler (thinkingeek.com)
64 points by b3h3moth on Oct 10, 2016 | hide | past | favorite | 13 comments



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


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?


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

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.


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 - 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.


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


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/ (I'm not related to Pine, just a satisfied user)


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) when looking for an AArch64 board, which is pretty similar.


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.


shame it's an allwinner SoC, they seem to have a history of GPL problems and binary blobs.


Except from HDMI almost everything is open or reverse engineered.

To me it was sill more attractive than the Ordroid-U3 with its Samsung chip, which boots only signed software and is totally undocumented. Same with the PI3 and its GPU code, which is needed to boot.


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


> 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.


What about iPhones?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: