7 ms·
Exploring AArch64 assembler
- Lichtso 10y agoFor 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 10y agoHmm, 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 10y agoOn 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.
- wyldfire 10y agoAnother cool thing you can do is setup the kernel's binfmt handler to run the user-mode qemu emulation automatically.
- faragon 10y agoI 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)
- Palomides 10y agoshame it's an allwinner SoC, they seem to have a history of GPL problems and binary blobs.
- Lichtso 10y agoExcept 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.
- conradev 10y agoI 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 10y agoI 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.
- ndesaulniers 10y ago> 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 10y agoWhat about iPhones?
- dpc_pw 10y agoThis 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 10y agonice, from "i dont like this article" to "rust advertising" in 5 sentences?