1 | /****************************************************************************/ |
---|
2 | /* Definition of the base addresses for all vsegs used by the GIET_VM */ |
---|
3 | /****************************************************************************/ |
---|
4 | |
---|
5 | /****************************************************************************/ |
---|
6 | /* The following (virtual) addresses are used by the boot code. */ |
---|
7 | /* They must respect identity mapping, because MMU is not activated. */ |
---|
8 | /* (identity mapping <=> physical address == virtual address */ |
---|
9 | /****************************************************************************/ |
---|
10 | |
---|
11 | seg_boot_code_base = 0xBFC00000; /* boot code */ |
---|
12 | seg_boot_stack_base = 0xBFC08000; /* boot temporary stack */ |
---|
13 | seg_mapping_base = 0xBFC0C000; /* mapping_info blob */ |
---|
14 | |
---|
15 | /****************************************************************************/ |
---|
16 | /* The following (virtual) addresse are defined and used by the kernel. */ |
---|
17 | /* They are not constrained to respect identity mapping. */ |
---|
18 | /****************************************************************************/ |
---|
19 | |
---|
20 | seg_kernel_code_base = 0x80000000; /* kernel code */ |
---|
21 | seg_kernel_data_base = 0x80010000; /* system cacheable data */ |
---|
22 | seg_kernel_uncdata_base = 0x80080000; /* system uncacheable data */ |
---|
23 | seg_kernel_init_base = 0x80090000; /* system init entry */ |
---|
24 | |
---|
25 | /****************************************************************************/ |
---|
26 | /* The following (virtual) peripherals base addresses are used by both */ |
---|
27 | /* the boot code to initialise the peripherals, and by the kernel drivers. */ |
---|
28 | /* For sake of simplicity, they partially respect identity mapping. */ |
---|
29 | /* As some components are replicated in all clusters (ICU, DMA), the 8 MSB */ |
---|
30 | /* must be completed by the OS depending on the cluster index: */ |
---|
31 | /* virtual address = base_address + cluster_id * CLUSTER_SIZE */ |
---|
32 | /* ( with CLUSTER_SIZE = 4Gbytes / NB_CLUSTERS ) */ |
---|
33 | /****************************************************************************/ |
---|
34 | |
---|
35 | seg_fbf_base = 0x00D00000; /* FrameBuffer device */ |
---|
36 | |
---|
37 | seg_icu_base = 0x00F00000; /* ICU or XICU device */ |
---|
38 | seg_ioc_base = 0x00F10000; /* Block device */ |
---|
39 | seg_tty_base = 0x00F20000; /* TTY device */ |
---|
40 | seg_dma_base = 0x00F30000; /* DMA device */ |
---|
41 | seg_tim_base = 0x00F40000; /* Timer device */ |
---|
42 | seg_gcd_base = 0x00F50000; /* GCD device */ |
---|
43 | seg_iob_base = 0x00FF0000; /* IOB device */ |
---|
44 | |
---|