-
Notifications
You must be signed in to change notification settings - Fork 16
/
disk_config.asm
85 lines (73 loc) · 2.37 KB
/
disk_config.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
;****************************************************************************
; Configure the BIOS drive DPH structures here.
;
; WARNING
; Do *NOT* expect to mount the same drive more than one
; way without corrupting it!
;****************************************************************************
; Create a DPH & ALV for each filesystem
if 1
; The SD card offset specified here is relative to the start of the
; boot partition. The 32-bit boot partition base address is
; expected to be stored in disk_offset_hi and disk_offset_low
include 'disk_nocache.asm'
.dph0: nocache_dph 0x0000 0x0000 ; SD logical drive 0 A:
.dph1: nocache_dph 0x0000 0x4000 ; SD logical drive 1 B:
.dph2: nocache_dph 0x0000 0x8000 ; SD logical drive 2 C:
.dph3: nocache_dph 0x0000 0xc000 ; SD logical drive 3 D:
.dph4: nocache_dph 0x0001 0x0000 ; SD logical drive 4 E:
.dph5: nocache_dph 0x0001 0x4000 ; SD logical drive 5 F:
.dph6: nocache_dph 0x0001 0x8000 ; SD logical drive 6 G:
.dph7: nocache_dph 0x0001 0xc000 ; SD logical drive 7 H:
if 0
; If we configure all 16 drives then we'll run out of memory
.dph8: nocache_dph 0x0002 0x0000 ; SD logical drive 8 I:
.dph9: nocache_dph 0x0002 0x4000 ; SD logical drive 9 J:
.dph10: nocache_dph 0x0002 0x8000 ; SD logical drive 10 K:
.dph11: nocache_dph 0x0002 0xc000 ; SD logical drive 11 L:
.dph12: nocache_dph 0x0003 0x0000 ; SD logical drive 12 M:
.dph13: nocache_dph 0x0003 0x4000 ; SD logical drive 13 N:
.dph14: nocache_dph 0x0003 0x8000 ; SD logical drive 14 O:
.dph15: nocache_dph 0x0003 0xc000 ; SD logical drive 15 P:
endif
else
; NOTE: dmcache ONLY works on a single-partition starting at SD block number 0x0800
include 'disk_dmcache.asm'
.dph0: dmcache_dph 0x0000 0x0800 ; This is absolute, NOT partition-relative!
endif
;include 'disk_stub.asm'
;.dph1: stub_dph ; useful for testing
;.dph2: stub_dph ; useful for testing
;.dph3: stub_dph
;.dph4: stub_dph
;.dph5: stub_dph
;.dph6: stub_dph
;.dph7: stub_dph
;.dph8: stub_dph
;.dph9: stub_dph
;.dph10: stub_dph
;.dph11: stub_dph
;.dph12: stub_dph
;.dph13: stub_dph
;.dph14: stub_dph
;.dph15: stub_dph
dph_vec:
dw .dph0
dw .dph1
dw .dph2
dw .dph3
dw .dph4
dw .dph5
dw .dph6
dw .dph7
if 0
dw .dph8
dw .dph9
dw .dph10
dw .dph11
dw .dph12
dw .dph13
dw .dph14
dw .dph15
endif
dph_vec_num: equ ($-dph_vec)/2 ; number of configured drives