]> git.ipfire.org Git - people/ms/u-boot.git/blame - disk/part_amiga.h
Merge branch 'master' of git://git.denx.de/u-boot-sh
[people/ms/u-boot.git] / disk / part_amiga.h
CommitLineData
c7de829c
WD
1/*
2 * (C) Copyright 2000
3 * Hans-Joerg Frieden, Hyperion Entertainment
4 * Hans-JoergF@hyperion-entertainment.com
5 *
3765b3e7 6 * SPDX-License-Identifier: GPL-2.0+
c7de829c
WD
7 */
8
9#ifndef _DISK_PART_AMIGA_H
10#define _DISK_PART_AMIGA_H
11#include <common.h>
12
13#ifdef CONFIG_ISO_PARTITION
14/* Make the buffers bigger if ISO partition support is enabled -- CD-ROMS
15 have 2048 byte blocks */
16#define DEFAULT_SECTOR_SIZE 2048
17#else
18#define DEFAULT_SECTOR_SIZE 512
19#endif
20
21
22#define AMIGA_BLOCK_LIMIT 16
23
24/*
25 * Amiga disks have a very open structure. The head for the partition table information
26 * is stored somewhere within the first 16 blocks on disk, and is called the
27 * "RigidDiskBlock".
28 */
29
8bde7f77 30struct rigid_disk_block
c7de829c
WD
31{
32 u32 id;
33 u32 summed_longs;
34 s32 chk_sum;
35 u32 host_id;
36 u32 block_bytes;
37 u32 flags;
38 u32 bad_block_list;
39 u32 partition_list;
40 u32 file_sys_header_list;
41 u32 drive_init;
42 u32 bootcode_block;
43 u32 reserved_1[5];
8bde7f77 44
c7de829c
WD
45 /* Physical drive geometry */
46 u32 cylinders;
47 u32 sectors;
48 u32 heads;
49 u32 interleave;
50 u32 park;
51 u32 reserved_2[3];
52 u32 write_pre_comp;
53 u32 reduced_write;
54 u32 step_rate;
55 u32 reserved_3[5];
56
57 /* logical drive geometry */
58 u32 rdb_blocks_lo;
59 u32 rdb_blocks_hi;
60 u32 lo_cylinder;
61 u32 hi_cylinder;
62 u32 cyl_blocks;
63 u32 auto_park_seconds;
64 u32 high_rdsk_block;
65 u32 reserved_4;
8bde7f77 66
c7de829c
WD
67 char disk_vendor[8];
68 char disk_product[16];
69 char disk_revision[4];
70 char controller_vendor[8];
71 char controller_product[16];
72 char controller_revision[4];
8bde7f77 73
c7de829c
WD
74 u32 reserved_5[10];
75};
76
77/*
78 * Each partition on this drive is defined by such a block
79 */
80
8bde7f77 81struct partition_block
c7de829c
WD
82{
83 u32 id;
84 u32 summed_longs;
85 s32 chk_sum;
86 u32 host_id;
87 u32 next;
88 u32 flags;
89 u32 reserved_1[2];
90 u32 dev_flags;
91 char drive_name[32];
92 u32 reserved_2[15];
93 u32 environment[17];
94 u32 reserved_3[15];
95};
96
8bde7f77 97struct bootcode_block
c7de829c
WD
98{
99 u32 id;
100 u32 summed_longs;
101 s32 chk_sum;
102 u32 host_id;
103 u32 next;
104 u32 load_data[123];
105};
106
107
108#define AMIGA_ID_RDISK 0x5244534B
109#define AMIGA_ID_PART 0x50415254
110#define AMIGA_ID_BOOT 0x424f4f54
111
8bde7f77 112/*
c7de829c
WD
113 * The environment array in the partition block
114 * describes the partition
115 */
116
8bde7f77 117struct amiga_part_geometry
c7de829c
WD
118{
119 u32 table_size;
120 u32 size_blocks;
121 u32 unused1;
122 u32 surfaces;
123 u32 sector_per_block;
124 u32 block_per_track;
125 u32 reserved;
126 u32 prealloc;
127 u32 interleave;
128 u32 low_cyl;
129 u32 high_cyl;
130 u32 num_buffers;
131 u32 buf_mem_type;
132 u32 max_transfer;
133 u32 mask;
134 s32 boot_priority;
135 u32 dos_type;
136 u32 baud;
137 u32 control;
138 u32 boot_blocks;
139};
140
141#endif /* _DISK_PART_AMIGA_H_ */