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

38 questions
26
votes
4 answers

What are the best possible ways to benchmark RAM (no-ECC) under linux / arm?

I want to test integrity and global performances of no-ECC memory chips on a custom board Are there some tools that run under linux so I can monitor system and global temperature in the same time ? Are there some no-ECC specific tests to do in…
moul
  • 545
  • 1
  • 4
  • 11
5
votes
1 answer

Any way to migrate AWS T3 x64 to T4G ARM?

Is there any easy way to migrate from aws x64 to arm arch? like without configuring a new arm based server and installing packages and file? it is currently running with Amazon linux AMI, we wish to change it to Amazon linux AMI 2. I just wanna know…
Ruben John
  • 53
  • 1
  • 3
4
votes
1 answer

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,0)

I'm trying to run orange-pi emulation with self-build linux kernel by this commands: ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make mrproper ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make sunxi_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-…
Hid-K
  • 71
  • 6
4
votes
2 answers

Postfix cannot load Certification Authority data error

I'm trying to use postfix as gmail relay smtp parameters are smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd smtp_sasl_security_options = noanonymous smtp_use_tls=yes smtp_tls_CAfile =…
AndreaF
  • 205
  • 1
  • 8
3
votes
1 answer

Performance penalty virtualising x86 from arm vs x86 from x86

Im not entirely sure if this is the correct place for this question, but I would like to build a server to run some experiments on and im considering arm, most of my code can be compiled to run on arm but there will be some external dependencies…
SwiftD
  • 223
  • 3
  • 9
2
votes
0 answers

Docker-compose exposing port when reusing network

I am trying to get a set of containers to work together with a OpenVPN-client. I used this as a template and build my own container (on a Raspberry Pi, so i cannot use the prebuilt image right away). So far it works like a charm, using the…
gelse
  • 21
  • 2
2
votes
1 answer

systemd not restarting my process

I have the following service configured: [Unit] Description=HB service started [Service] Restart=always # or always, on-abort,…
Luis Cruz
  • 131
  • 1
  • 5
2
votes
0 answers

How to test RAM on embedded ARM system? (Linux, no console)

I get a lot of memory dumps in dmesg, It seems to me every time the OS is trying to use any more than about 100 MB of RAM weird things are happening. How can I test RAM on ARM, on running Linux system? For a standard server, I'dI'd run memtest x86,…
StanTastic
  • 810
  • 1
  • 7
  • 24
2
votes
0 answers

mq_send : bad file descriptor

I have tried executing sample message queue programs on arm (linux) platform and mq_send() throws error number 9 (Bad file descriptor). 1) mq is enabled in kernel i.e CONFIG_POSIX_MQUEUE and CONFIG_POSIX_MQUEUE_SYSCTL 2) using -lrt to compile the…
lavina
  • 33
  • 5
2
votes
2 answers

CPU Affinity on ARM processors

I am using some RaspberryPI boards for a data acquisition system. They are nice boards, with plenty of community support around them, but they are really slow. I am thinking of gradually replacing them with ODROID multicore boards, with the Samsung…
dlyk1988
  • 1,644
  • 4
  • 24
  • 36
1
vote
1 answer

Keep Same Static Public IP via ARM Template

I'm trying to redploy an arm template to create a vgw and vnet. I notice that everytime I deploy my arm template my virtual network gateway always gets a new IP address regardsless if specific an IP. Which begs the question. If I delete the public…
1
vote
1 answer

Packer errors with qemu-system-aarch64

I have some success creating Vagrant base boxes with Packer for x86 and x86_64 guests, including VirtualBox, VMware, and qemu hypervisors. Now, I want to start making ARM guests with Packer and qemu, but I am not sure how to resolve the error that I…
mcandre
  • 168
  • 7
1
vote
0 answers

How to debug nfsrootfs not booting issue

We have Beaglebone black based custom board with 4GB eMMC and 256MB RAM. We use network boot for putting software on eMMC for very first time. For this purpose we have configured ubuntu PC for network boot(tftp and nfsrootfs). It acts as tftp and…
ART
  • 111
  • 1
1
vote
0 answers

ssh hangs in Ubuntu MaaS heterogeneous cluster

I have the following issue when using ssh on my local network. I have setup a small cluster of Xeon machines using MAAS. I have installed Ubuntu Server 12.04 on all machines and configured local network 192.168.100.0/24. Machines are connected…
D Mister
  • 11
  • 2
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
2 3