Rev 4531 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4531 | Rev 4546 | ||
---|---|---|---|
Line 48... | Line 48... | ||
48 | 48 | ||
49 | enum { |
49 | enum { |
50 | MAX_DISKS = 2 |
50 | MAX_DISKS = 2 |
51 | }; |
51 | }; |
52 | 52 | ||
- | 53 | /** ATA Command Register Block. */ |
|
53 | typedef union { |
54 | typedef union { |
54 | /* Read */ |
55 | /* Read/Write */ |
55 | struct { |
56 | struct { |
56 | uint8_t data_port; |
57 | uint16_t data_port; |
57 | uint8_t error; |
- | |
58 | uint8_t sector_count; |
58 | uint8_t sector_count; |
59 | uint8_t sector_number; |
59 | uint8_t sector_number; |
60 | uint8_t cylinder_low; |
60 | uint8_t cylinder_low; |
61 | uint8_t cylinder_high; |
61 | uint8_t cylinder_high; |
62 | uint8_t drive_head; |
62 | uint8_t drive_head; |
- | 63 | uint8_t pad_rw0; |
|
- | 64 | }; |
|
- | 65 | ||
- | 66 | /* Read Only */ |
|
- | 67 | struct { |
|
- | 68 | uint8_t pad_ro0; |
|
- | 69 | uint8_t error; |
|
- | 70 | uint8_t pad_ro1[5]; |
|
63 | uint8_t status; |
71 | uint8_t status; |
64 | }; |
72 | }; |
65 | 73 | ||
66 | /* Write */ |
74 | /* Write Only */ |
67 | struct { |
75 | struct { |
68 | uint8_t pad0[7]; |
76 | uint8_t pad_wo0; |
- | 77 | uint8_t features; |
|
- | 78 | uint8_t pad_wo1[5]; |
|
69 | uint8_t command; |
79 | uint8_t command; |
70 | }; |
80 | }; |
71 | } ata_cmd_t; |
81 | } ata_cmd_t; |
72 | 82 | ||
73 | typedef union { |
83 | typedef union { |