32 Snp->Cdb.OpFlags = PXE_OPFLAGS_NOT_USED;
37 Snp->Cdb.StatCode = PXE_STATCODE_INITIALIZE;
38 Snp->Cdb.StatFlags = PXE_STATFLAGS_INITIALIZE;
39 Snp->Cdb.IFnum = Snp->IfNum;
40 Snp->Cdb.Control = PXE_CONTROL_LAST_CDB_IN_LIST;
48 Snp->Cdb.CPBaddr = (UINT64)(
UINTN)Cpb31;
69 DEBUG ((DEBUG_NET,
"\nsnp->undi.start() "));
71 (*Snp->IssueUndi32Command)((UINT64)(
UINTN)&Snp->Cdb);
79 "\nsnp->undi.start() %xh:%xh\n",
84 return EFI_DEVICE_ERROR;
90 Snp->Mode.State = EfiSimpleNetworkStarted;
123 return EFI_INVALID_PARAMETER;
126 Snp = EFI_SIMPLE_NETWORK_DEV_FROM_THIS (This);
128 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
130 switch (Snp->Mode.
State) {
131 case EfiSimpleNetworkStopped:
134 case EfiSimpleNetworkStarted:
135 case EfiSimpleNetworkInitialized:
136 Status = EFI_ALREADY_STARTED;
140 Status = EFI_DEVICE_ERROR;
145 if (EFI_ERROR (Status)) {
152 for (Index = 0; Index < MAX_MAP_LENGTH; Index++) {
153 Snp->MapList[Index].VirtualAddress = 0;
154 Snp->MapList[Index].MapCookie = 0;
160 gBS->RestoreTPL (OldTpl);
VOID EFIAPI SnpUndi32CallbackMap(IN UINT64 UniqueId, IN UINT64 CpuAddr, IN UINT32 NumBytes, IN UINT32 Direction, IN OUT UINT64 DeviceAddrPtr)
VOID EFIAPI SnpUndi32CallbackUnmap(IN UINT64 UniqueId, IN UINT64 CpuAddr, IN UINT32 NumBytes, IN UINT32 Direction, IN UINT64 DeviceAddr)
VOID EFIAPI SnpUndi32CallbackBlock(IN UINT64 UniqueId, IN UINT32 Enable)
VOID EFIAPI SnpUndi32CallbackMemio(IN UINT64 UniqueId, IN UINT8 ReadOrWrite, IN UINT8 NumBytes, IN UINT64 MemOrPortAddr, IN OUT UINT64 BufferPtr)
VOID EFIAPI SnpUndi32CallbackDelay(IN UINT64 UniqueId, IN UINT64 MicroSeconds)
VOID EFIAPI SnpUndi32CallbackSync(IN UINT64 UniqueId, IN UINT64 CpuAddr, IN UINT32 NumBytes, IN UINT32 Direction, IN UINT64 DeviceAddr)
#define DEBUG(Expression)
EFI_STATUS PxeStart(IN SNP_DRIVER *Snp)
EFI_STATUS EFIAPI SnpUndi32Start(IN EFI_SIMPLE_NETWORK_PROTOCOL *This)
#define PXE_CPBSIZE_NOT_USED
zero
#define PXE_DBSIZE_NOT_USED
zero
#define PXE_CPBADDR_NOT_USED
zero
#define PXE_DBADDR_NOT_USED
zero
#define PXE_STATCODE_SUCCESS