Intel SE7525GP2 Product Specification - Page 100

OEM Binary

Page 100 highlights

System BIOS Intel® Server Boards SE7320SP2 and SE7525GP2 4.8 OEM Binary System customers can supply 16 KB of code and data for use during POST and at run-time. Individual platforms may support a larger user binary. User binary code is executed at several defined hook points during POST. The user binary code is stored in the system flash. If no run-time code is added, the BIOS temporarily allocates a code buffer according to [PMM]. If run-time code is present, the BIOS shadows the entire block as though it were an option ROM. The BIOS leaves this region writeable to allow the user binary to update any data structures it defines. System software can locate a run-time user binary by searching for it like an option ROM, checking each 2 KB boundary from C0000h to EFFFFh. The system vendor can place a signature within the user binary to distinguish it from other option ROMs. Intel provides the tools and reference code to help OEMs build a user binary. The user binary must adhere to the following requirements: ƒ In order to be recognized by the BIOS and protected from runtime memory managers, the user binary must have an option ROM header (55AA, size). ƒ The system BIOS performs a scan of the user binary area at predefined points during POST. Mask bits must be set within the user binary to inform the BIOS if an entry point exists for a given time during POST. ƒ The system state must be preserved by the user binary. ƒ User binary code must be relocatable. It will be located within the first Megabyte. The user binary code should not make any assumptions about the value of the code segment. ƒ User binary code will always be executed from RAM and never from flash. ƒ The code in user binary should not hook critical interrupts, should not re-program the chipset and should not take any action that affects the correct functioning of the system BIOS. The BIOS copies the user binary into system memory before the first scan point. If the user binary reports that it does not contain runtime code, it is located in conventional memory (0 640 KB). Reporting that the user binary is POSTed has only the advantage that it does not use up limited option ROM space, and more option ROM space can be used for other devices. If user binary code is required at run-time, it is copied to the option ROM space. At each scan-point during POST, the system BIOS determines if the scan-point has a corresponding user binary entry point to transfer control to. To determine this, the bitmap at byte 4 of the header is tested against the current mask bit that has been determined / defined by the scan point. If the bitmap has the appropriate bit set, the mask is placed in AL and execution is passed to the address computed by (ADR(Byte 5)+5*scan sequence #). During execution, the user binary may access 11 bytes of Extended BIOS Data Area RAM (EBDA). The segment of the EBDA can be found at address 40:0e. Offset 18 to offset 21h is available for the user binary. The BIOS also reserves eight CMOS bits for the user binary. These bits are in a region of CMOS that does not have a checksum, with default values of zero, and will always be located in the first bank of CMOS. These bits are contiguous, but are not in a 88 Revision 4.0

  • 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
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184

System BIOS
IntelĀ® Server Boards SE7320SP2 and SE7525GP2
Revision 4.0
88
4.8
OEM Binary
System customers can supply 16 KB of code and data for use during POST and at run-time.
Individual platforms may support a larger user binary. User binary code is executed at several
defined hook points during POST.
The user binary code is stored in the system flash. If no run-time code is added, the BIOS
temporarily allocates a code buffer according to [PMM]. If run-time code is present, the BIOS
shadows the entire block as though it were an option ROM. The BIOS leaves this region
writeable to allow the user binary to update any data structures it defines. System software can
locate a run-time user binary by searching for it like an option ROM, checking each 2 KB
boundary from C0000h to EFFFFh. The system vendor can place a signature within the user
binary to distinguish it from other option ROMs.
Intel provides the tools and reference code to help OEMs build a user binary. The user binary
must adhere to the following requirements:
In order to be recognized by the BIOS and protected from runtime memory managers,
the user binary must have an option ROM header (55AA, size).
The system BIOS performs a scan of the user binary area at predefined points during
POST. Mask bits must be set within the user binary to inform the BIOS if an entry point
exists for a given time during POST.
The system state must be preserved by the user binary.
User binary code must be relocatable. It will be located within the first Megabyte. The
user binary code should not make any assumptions about the value of the code
segment.
User binary code will always be executed from RAM and never from flash.
The code in user binary should not hook critical interrupts, should not re-program the
chipset and should not take any action that affects the correct functioning of the system
BIOS.
The BIOS copies the user binary into system memory before the first scan point. If the user
binary reports that it does not contain runtime code, it is located in conventional memory (0 -
640 KB).
Reporting that the user binary is POSTed has only the advantage that it does not use up limited
option ROM space, and more option ROM space can be used for other devices. If user binary
code is required at run-time, it is copied to the option ROM space. At each scan-point during
POST, the system BIOS determines if the scan-point has a corresponding user binary entry
point to transfer control to.
To determine this, the bitmap at byte 4 of the header is tested against the current mask bit that
has been determined / defined by the scan point. If the bitmap has the appropriate bit set, the
mask is placed in AL and execution is passed to the address computed by (ADR(Byte
5)+5*scan sequence #).
During execution, the user binary may access 11 bytes of Extended BIOS Data Area RAM
(EBDA). The segment of the EBDA can be found at address 40:0e. Offset 18 to offset 21h is
available for the user binary. The BIOS also reserves eight CMOS bits for the user binary.
These bits are in a region of CMOS that does not have a checksum, with default values of zero,
and will always be located in the first bank of CMOS. These bits are contiguous, but are not in a