Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4833

Bare metal, Assembly language • Re: Accessing RP1 Peripherals from the BCM2712 on the Pi 5

$
0
0
Address 0x1F_0000_0000 maps to peripheral address space 0x4000_0000 - 0x4040_0000 on RP1. Not all registers appear to be accessible.
its less that 1e maps to the rp1
and more that 1f_0000_0000 maps to 0x4000_0000

the 1f addr only works for the peripherals, and the addresses below it (1ec) wont map to what your thinking
Gotcha. That makes sense. Interestingly, reading from one of these locations in a bare metal environment causes a data abort on the ARM CPU.

So, for example, I have UART0 at 0x1F00030000. The Control register lives at offset 0x30 according to the PLO11 documentation, and is 16 bits wide.

As such, I generate the address 0x1F00030030 and perform a volatile read of two bytes from that location. As soon as the read is executed, OpenOCD returns "Error: abort occurred - dscr = 0x03047e93" and the CPU halts. I believe a data abort is indicated by that output.

This would suggest to me that the memory address is not valid in a bare metal environment...Does something need to be configured to create that mapping?

Statistics: Posted by tfinnegan937 — Tue Apr 02, 2024 1:41 am



Viewing all articles
Browse latest Browse all 4833

Trending Articles