[208] | 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 | |
---|