Questions tagged [arm]

ARM is a reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings. It was named the Advanced RISC Machine and, before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit instruction set architecture in numbers produced.

Introduction

ARM is a reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings. It was named the Advanced RISC Machine and, before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit instruction set architecture in numbers produced.

The ARM architecture is generally described as a Reduced Instruction Set Computer (RISC) architecture, as it incorporates these typical RISC architecture features:

  • A uniform register file load/store architecture, where data-processing operates only on register contents, not directly on memory contents.
  • Simple addressing modes, with all load/store addresses determined from register contents and instruction fields only.

enter image description here

CPU modes

The ARM architecture specifies the following CPU modes. At any moment in time, the CPU can be in only one mode, but it can switch modes due to external events (interrupts) or programmatically. User mode The only non-privileged mode. System mode The only privileged mode that is not entered by an exception. It can only be entered by executing an instruction that explicitly writes to the mode bits of the CPSR.
  • Supervisor (svc) mode A privileged mode entered whenever the CPU is reset or when a SWI instruction is executed.
  • Abort mode A privileged mode that is entered whenever a prefetch abort or data abort exception occurs.
  • Undefined mode A privileged mode that is entered whenever an undefined instruction exception occurs.
  • Interrupt mode A privileged mode that is entered whenever the processor accepts an IRQ interrupt.
  • Fast Interrupt mode A privileged mode that is entered whenever the processor accepts an FIQ interrupt.

64 bit support

Released in late 2011, ARMv8 represents the first fundamental change to the ARM architecture. It adds a 64-bit architecture, dubbed 'AArch64', and a new 'A64' instruction set. Within the context of ARMv8, the 32-bit architecture and instruction set are referred to as 'AArch32' and 'A32', respectively. The Thumb instruction sets are referred to as 'T32' and have no 64-bit counterpart. ARMv8 allows 32-bit applications to be executed in a 64-bit OS, and for a 32-bit OS to be under the control of a 64-bit hypervisor.As of March 2012, only the ARMv8-A ("application") profile has been defined, and no implementations have been announced.

To both AArch32 and AArch64, ARMv8 makes VFP and advanced SIMD (NEON) standard. It also adds cryptography instructions supporting AES and SHA-1/SHA-256.

AArch64 features:

  • New instruction set, A64
  • 31 general-purpose 64-bit registers
  • Instructions are still 32 bits long and mostly the same as A32
  • Most instructions can take 32-bit or 64-bit arguments
  • Addresses assumed to be 64-bit
  • A new exception system
  • Fewer banked registers and modes
  • Memory translation from 48-bit virtual addresses based on the existing LPAE, which was designed to be easily extended to 64-bit

Sources: arm.com and wikipedia

43 questions
1
vote
1 answer

Cannot start OpenVPN on sheevaplug. Any suggestions?

I installed OpenVPN on my arm-based sheevaplug (OS is Debian 7 Wheezy, kernel 3.8.8.) but as soon as i try to start the service i receive the following error: [....] Starting virtual private network daemon: serverSIOCSIFADDR: No such device : ERROR…
vsapountzis
  • 123
  • 6
1
vote
1 answer

Packets do not reach FILTER chain of iptables

I have a problem I cant figure out, I am trying to access webserver on [RPI], but packets never reach iptables FILTER chain I will try to explain it a bit: GW1 has public address and doing DNAT from port 8080 to 192.168.69.14:80 S1 is a openVPN…
Ency
  • 1,231
  • 1
  • 19
  • 27
1
vote
2 answers

I've installed "dash" but still see "bash" when I login via SSH

I've configured my Raspberry Pi to use "dash" for default shell, as instructed here. I have Dropbear for SSH. When I login via SSH, I still see the "bash" console, and not "dash". How to change this and forget bash?
Pentium10
  • 444
  • 1
  • 9
  • 23
1
vote
1 answer

Moving linux server from ARM to x86

I've got a RPi LAMP server; Apache alone drives our Nextcloud, Zabbix, Prestashop, Guacamole and few other - we're unhappy with the performance as my 1GBit fiber is wasting on RPi(only 100Mb/s) and playing 4k video is not possible for two people at…
CRUDO
  • 11
  • 2
1
vote
1 answer

Docker Squid not enforcing time acl in configuration

I have a squid running in docker, which is not enforcing the time ACLs that are defined in the configuration. I'me using https://hub.docker.com/r/ubuntu/squid running on arm This is my configuration in squid.conf: acl localnet src…
BANJOSA
  • 370
  • 1
  • 3
  • 15
1
vote
0 answers

How to check if KVM nested virtualization is supported on ARM64 processor?

I have a virtual machine running RHEL 8.5 on an ARM64 (aarch64) processor - Arm Neoverse N1. Every tutorial I've found states looking at either /sys/module/kvm_amd or the /sys/module/kvm_intel folder to figure out whether nested virtualization is…
Sayan J. Das
  • 191
  • 9
1
vote
0 answers

minikube on macos with m1 darwin without docker

Ok, in my search for a development environment without docker desktop, I am exploring minikube. The issue is that minikube (at the time of writing) cannot run on macos with m1 chip because hyperkit is not supported yet on darwin acrhitecture. I also…
santiago arizti
  • 435
  • 6
  • 16
1
vote
1 answer

Default Apache 404 Message Appears to Be Different on ARM

I'm working on porting my company's x86-64 app to ARM aarch64. I am finding a difference in the default 404 behavior of apache I cannot explain/fix. I have been unable to find apache docs to explain this, nor another similar issue on a site like…
Lenny
  • 11
  • 1
1
vote
0 answers

Create custom AMI for Aarch64 with latest Debian and custom Kernel

I am trying to create a custom Debian based AMI with my own custom kernel for AWS EC2 instances, specifically I'm trying to run it on t4g.micro/medium instances. I debootstrap an ARM64 Debian and copy the required /boot/efi/EFI/* contents from an…
1
vote
0 answers

e2fsck Error writing block on ARM server

I created a 60TB thick volume and I took a snapshot on it with e2fsck. And it shows a message that I don't understand. > e2fsck -dnvftt /dev/mapper/vg1-snap10001 e2fsck 1.43.9 (8-Feb-2018) Pass 1: Checking inodes, blocks, and sizes Inode 81855343…
yayaya
  • 31
  • 4
0
votes
1 answer

Linux Headless Server Audio Player RTP stream

I am streaming audio from a linux server (192.168.0.10) to a headless client using ffmpeg. ffmpeg -i INPUT -acodec libmp3lame -ar 11025 --f rtp rtp://192.168.0.100:1234 On the headless client, I am trying to play the stream using vlc on the…
0
votes
0 answers

1000Mbps RGMII and 100Mbps PHY

An ARM SoC (Amlogic S905) indicates that the ethernet is 1000Mbps RGMII and 100Mbps PHY. Does that mean that the communication with the physical layer is slow?
physkets
  • 43
  • 1
  • 1
  • 4
0
votes
0 answers

Using RTC to synchronize ntpd when offline

I need a stable configuration, presumably using ntpd, to keep system clock as precise as possible. Background: I have several embedded devices (arm9) running linux (currently: 3.16.1 / debian 7.2) that are powered up at random intervals (some may be…
ZioByte
  • 296
  • 4
  • 17
0
votes
1 answer

ARM Debian (squeeze) USB driver with mismatch 3.3.3 kernel but /lib/modules/2.6.36

Hei guys, my sheevaplug embedded server works fine, but when I wanted to use USB, the device gets not attached to /dev/tty/USB0 lsusb shows correctly: Bus 001 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port an modprobe…
frank
  • 11
  • 2
0
votes
0 answers

GKE Arm-based cluster starts in invalid state

After I install a new GKE cluster on Arm-based VM it immediately starts in a failing state. Specifically antrea-controller-horizontal-autoscaler cannot be run as it has no toleration for Arm-based architecture. Did it happen to anyone else? Official…