xref: /haiku/src/system/boot/platform/amiga_m68k/amiga_memory_map.h (revision f3ab95c889067254ae746c2d7bcd00fcdcd327ce)
1 /*
2  * Copyright 2008, François Revol, revol@free.fr. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef AMIGA_MEMORY_MAP_H
6 #define AMIGA_MEMORY_MAP_H
7 
8 
9 /* the DMA-accessible RAM */
10 #define AMIGA_CHIPRAM_BASE			0x00000000
11 //XXX:
12 /* actually, the first 2kB aren't usable */
13 //#define AMIGA_CHIPRAM_BASE			0x00001000
14 #define AMIGA_CHIPRAM_MAX			0x00e00000
15 #define AMIGA_CHIPRAM_LAST						\
16 	(AMIGA_CHIPRAM_BASE + (AMIGA_CHIPRAM_MAX - 1))
17 
18 #define AMIGA_ROM_BASE			0x00f80000
19 #define AMIGA_ROM_MAX			0x00080000
20 #define AMIGA_ROM_LAST						\
21 	(AMIGA_ROM_BASE + (AMIGA_ROM_MAX - 1))
22 
23 /* some reserved ST I/O there... */
24 
25 /* cartridge ROM */
26 #define AMIGA_CARTROM_BASE			0x00fa0000
27 #define AMIGA_CARTROM_MAX			0x00020000
28 #define AMIGA_CARTROM_LAST						\
29 	(AMIGA_CARTROM_BASE + (AMIGA_CARTROM_MAX - 1))
30 
31 #define AMIGA_SYSROM_BASE			0x00fc0000
32 #define AMIGA_SYSROM_MAX			0x00030000
33 #define AMIGA_SYSROM_LAST						\
34 	(AMIGA_SYSROM_BASE + (AMIGA_SYSROM_MAX - 1))
35 
36 /* more ST I/O there... */
37 
38 /* the fast, non-DMA-accessible RAM */
39 #define AMIGA_FASTRAM_BASE			0x01000000
40 // max on TT,
41 // but there is nothing beyond until SHADOW_BASE
42 //#define AMIGA_FASTRAM_MAX			0x00400000
43 #define AMIGA_FASTRAM_MAX			0xfe000000
44 #define AMIGA_FASTRAM_LAST						\
45 	(AMIGA_FASTRAM_BASE + (AMIGA_FASTRAM_MAX - 1))
46 
47 
48 
49 /* due to ST legacy (24 bit addressing), IO is actually there */
50 #define AMIGA_SHADOW_BASE			0xff000000
51 
52 #define AMIGA_IO_BASE				(AMIGA_SHADOW_BASE + 0x00f00000)
53 #define AMIGA_IO_MAX				0x00100000
54 #define AMIGA_IO_LAST							\
55 	(AMIGA_IO_BASE + (AMIGA_IO_MAX - 1))
56 
57 
58 
59 
60 
61 /* physical memory layout as used by the bootloader */
62 
63 //#define AMIGA_ZBEOS_STACK_BASE		0x00040000
64 #define AMIGA_ZBEOS_STACK_BASE		0x00060000
65 #define AMIGA_ZBEOS_STACK_END		0x00080000
66 
67 /* from .prg shell.S will copy itself there
68  * must stay in sync with src/system/ldscripts/m68k/boot_prg_amiga_m68k.ld
69  */
70 #define AMIGA_ZBEOS_BASE			0x00080000
71 #define AMIGA_ZBEOS_MAX				0x00080000
72 #define AMIGA_ZBEOS_LAST						\
73 	(AMIGA_ZBEOS_BASE + (AMIGA_ZBEOS_MAX - 1))
74 
75 
76 #define AMIGA_STRAM_VIRT_BASE
77 
78 #endif	/* AMIGA_MEMORY_MAP_H */
79