display works sortof
[rpikern] / doc / notes.md
1 Raspberry Pi2 notes
2 ===================
3 Accessing different peripherals migh return results out of order. See bcm2835
4 spec section 1.3. Use memory barriers as follows:
5  - place write barrier before the first write to a peripheral
6  - place read barrier after the last read of a peripheral
7
8 Multiple accesses to the same peripheral in a row do not require barriers.
9
10 Interrupt handlers should have a read barrier before their first read, and end
11 with a write barrier.
12
13 Cache clean and invalidate operations are also needed before the GPU can see our
14 command buffers... see:
15 https://github.com/rsta2/uspi/blob/38eaff4f715643a9/lib/synchronize.c
16
17 Memory map
18 ----------
19 RAM is mapped to 0, 40000000 (cache-coherent) and c0000000h (uncached) in VC
20 space. In the ARM address space is mapped to 0(?).
21
22 I/O base is at 7e000000 in VC address space (rpi1?), and mapped to different
23 ranges for each model in ARM space.
24
25 Memory map summary:
26  - load address: 8000h
27  - I/O base:
28    * rpi0/1: 20000000h
29    * rpi2/3: 3f000000h
30    * rpi4:   fe000000h