|
@@ -10,26 +10,6 @@
|
10
|
10
|
#include <int13.h>
|
11
|
11
|
#include <usr/aoeboot.h>
|
12
|
12
|
|
13
|
|
-/**
|
14
|
|
- * AoE boot information block
|
15
|
|
- *
|
16
|
|
- * Must be placed at 40:f0.
|
17
|
|
- *
|
18
|
|
- * This structure needs to be replaced by an ACPI table or similar.
|
19
|
|
- */
|
20
|
|
-struct aoe_boot_info {
|
21
|
|
- /** Must be 0x01 */
|
22
|
|
- uint8_t one;
|
23
|
|
- /** Client MAC address */
|
24
|
|
- uint8_t client[ETH_ALEN];
|
25
|
|
- /** Server MAC address */
|
26
|
|
- uint8_t server[ETH_ALEN];
|
27
|
|
- /** Shelf number */
|
28
|
|
- uint16_t shelf;
|
29
|
|
- /** Slot number */
|
30
|
|
- uint8_t slot;
|
31
|
|
-} __attribute__ (( packed ));
|
32
|
|
-
|
33
|
13
|
/**
|
34
|
14
|
* Guess boot network device
|
35
|
15
|
*
|
|
@@ -73,16 +53,6 @@ int aoeboot ( const char *root_path ) {
|
73
|
53
|
/* FIXME: ugly, ugly hack */
|
74
|
54
|
struct aoe_session *aoe =
|
75
|
55
|
container_of ( ata.backend, struct aoe_session, refcnt );
|
76
|
|
- struct aoe_boot_info boot_info;
|
77
|
|
- boot_info.one = 0x01;
|
78
|
|
- memcpy ( boot_info.client, netdev->ll_addr,
|
79
|
|
- sizeof ( boot_info.client ) );
|
80
|
|
- memcpy ( boot_info.server, aoe->target,
|
81
|
|
- sizeof ( boot_info.server ) );
|
82
|
|
- boot_info.shelf = htons ( aoe->major );
|
83
|
|
- boot_info.slot = aoe->minor;
|
84
|
|
- copy_to_real ( 0x40, 0xf0, &boot_info, sizeof ( boot_info ) );
|
85
|
|
-
|
86
|
56
|
abft_fill_data ( aoe );
|
87
|
57
|
|
88
|
58
|
drive.drive = find_global_dhcp_num_option ( DHCP_EB_BIOS_DRIVE );
|