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