X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=include%2Fwince.h;h=72d42f998a164e61b0d0c06d916bd65269dd58ab;hb=5d6da36b9c623c448c998e58a7ad03abed5dc2b0;hp=ff8d1650b5c9db2d9e717139475281573bd6db12;hpb=bb0f32d0bad65fc6948ce6032f9004a70e11fef4;p=karo-tx-uboot.git diff --git a/include/wince.h b/include/wince.h index ff8d1650b5..72d42f998a 100644 --- a/include/wince.h +++ b/include/wince.h @@ -18,8 +18,6 @@ #ifndef __WINCE_H__ #define __WINCE_H__ -#define CE_DOFFSET (net->align_offset + ETHER_HDR_SIZE + IP_HDR_SIZE) - /* Bin image parse results */ #define CE_PR_EOF 0 #define CE_PR_MORE 1 @@ -161,8 +159,6 @@ typedef struct { unsigned short e32_subsys; /* The subsystem type */ } e32_rom; - - /* OS config msg */ #define EDBG_FL_DBGMSG 0x01 /* Debug messages */ @@ -249,8 +245,6 @@ typedef struct char mtdparts[]; } ce_std_driver_globals; -#pragma pack() - typedef struct { void *rtiPhysAddr; unsigned int rtiPhysLen; @@ -261,7 +255,6 @@ typedef struct { void *eEntryPoint; void *eRamStart; unsigned int eRamLen; - ce_driver_globals *eDrvGlb; unsigned char parseState; unsigned int parseChkSum; @@ -276,13 +269,13 @@ typedef struct { int endOfBin; edbg_os_config_data edbgConfig; -} __attribute__((packed)) ce_bin; +} ce_bin; /* IPv4 support */ /* Socket/connection information */ struct sockaddr_in { - IPaddr_t sin_addr; + struct in_addr sin_addr; unsigned short sin_port; unsigned short sin_family; short sin_len; @@ -294,19 +287,39 @@ struct sockaddr_in { #define ETH_ALEN 6 #endif +enum bootme_state { + BOOTME_INIT, + BOOTME_DOWNLOAD, + BOOTME_DEBUG_INIT, + BOOTME_DEBUG, + BOOTME_DONE, + BOOTME_ERROR, +}; + typedef struct { int verbose; int link; +#ifdef BORKED struct sockaddr_in locAddr; struct sockaddr_in srvAddrSend; struct sockaddr_in srvAddrRecv; +#else + struct in_addr server_ip; +#endif int gotJumpingRequest; - unsigned char seqNum; - unsigned short blockNum; int dataLen; - int align_offset; - int got_packet_4me; +// int align_offset; +// int got_packet_4me; +// int status; + enum bootme_state state; + unsigned short blockNum; + unsigned char seqNum; + unsigned char pad; +#if 0 unsigned char data[PKTSIZE_ALIGN]; +#else + unsigned char *data; +#endif } ce_net; struct timeval { @@ -423,4 +436,14 @@ struct timeval { #define EDBG_CPU_PPC821 (EDBG_CPU_TYPE_PPC | 0) #define EDBG_CPU_PPC403 (EDBG_CPU_TYPE_PPC | 1) #define EDBG_CPU_THUMB720 (EDBG_CPU_TYPE_THUMB | 0) + +typedef enum bootme_state bootme_hand_f(const void *pkt, size_t len); + +int bootme_recv_frame(void *buf, size_t len, int timeout); +int bootme_send_frame(const void *buf, size_t len); +//void bootme_init(struct in_addr server_ip); +int BootMeRequest(struct in_addr server_ip, const void *buf, size_t len, int timeout); +//int ce_download_handler(const void *buf, size_t len); +int BootMeDownload(bootme_hand_f *pkt_handler); +int BootMeDebugStart(bootme_hand_f *pkt_handler); #endif