Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
hermes_dld.c File Reference
#include <linux/module.h>
#include <linux/delay.h>
#include "hermes.h"
#include "hermes_dld.h"

Go to the source code of this file.

Data Structures

struct  dblock
 
struct  pdr
 
struct  pdi
 

Macros

#define PFX   "hermes_dld: "
 
#define PDI_END   0x00000000 /* End of PDA */
 
#define BLOCK_END   0xFFFFFFFF /* Last image block */
 
#define TEXT_END   0x1A /* End of text header */
 
#define DEFINE_DEFAULT_PDR(pid, length, data)
 
#define DEFAULT_PDR(pid)   default_pdr_data_##pid
 

Functions

int hermes_apply_pda (struct hermes *hw, const char *first_pdr, const void *pdr_end, const __le16 *pda, const void *pda_end)
 
size_t hermes_blocks_length (const char *first_block, const void *end)
 
int hermes_program (struct hermes *hw, const char *first_block, const void *end)
 
 DEFINE_DEFAULT_PDR (0x0005, 10,"\x00\x00\x06\x00\x01\x00\x01\x00\x01\x00")
 
 DEFINE_DEFAULT_PDR (0x0108, 4,"\x00\x00\x00\x00")
 
 DEFINE_DEFAULT_PDR (0x0109, 10,"\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00")
 
 DEFINE_DEFAULT_PDR (0x0150, 2,"\x00\x3F")
 
 DEFINE_DEFAULT_PDR (0x0160, 28,"\x00\x00\x00\x00\x00\x00\x00\x00""\x00\x00\x00\x00\x00\x00\x00\x00""\x00\x00\x00\x00\x00\x00\x00\x00""\x00\x00\x00\x00")
 
 DEFINE_DEFAULT_PDR (0x0161, 256,"\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3E\01\x3E\x01\x3D\x01""\x3D\x01\x3C\01\x3C\x01\x3B\x01""\x3B\x01\x3A\01\x3A\x01\x39\x01""\x39\x01\x38\01\x38\x01\x37\x01""\x37\x01\x36\01\x36\x01\x35\x01""\x35\x01\x34\01\x34\x01\x33\x01""\x33\x01\x32\x01\x32\x01\x31\x01""\x31\x01\x30\x01\x30\x01\x7B\x01""\x7B\x01\x7A\x01\x7A\x01\x79\x01""\x79\x01\x78\x01\x78\x01\x77\x01""\x77\x01\x76\x01\x76\x01\x75\x01""\x75\x01\x74\x01\x74\x01\x73\x01""\x73\x01\x72\x01\x72\x01\x71\x01""\x71\x01\x70\x01\x70\x01\x68\x01""\x68\x01\x67\x01\x67\x01\x66\x01""\x66\x01\x65\x01\x65\x01\x57\x01""\x57\x01\x56\x01\x56\x01\x55\x01""\x55\x01\x54\x01\x54\x01\x53\x01""\x53\x01\x52\x01\x52\x01\x51\x01""\x51\x01\x50\x01\x50\x01\x48\x01""\x48\x01\x47\x01\x47\x01\x46\x01""\x46\x01\x45\x01\x45\x01\x44\x01""\x44\x01\x43\x01\x43\x01\x42\x01""\x42\x01\x41\x01\x41\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01")
 
int hermes_apply_pda_with_defaults (struct hermes *hw, const char *first_pdr, const void *pdr_end, const __le16 *pda, const void *pda_end)
 

Variables

struct dblock __packed
 

Macro Definition Documentation

#define BLOCK_END   0xFFFFFFFF /* Last image block */

Definition at line 51 of file hermes_dld.c.

#define DEFAULT_PDR (   pid)    default_pdr_data_##pid

Definition at line 327 of file hermes_dld.c.

#define DEFINE_DEFAULT_PDR (   pid,
  length,
  data 
)
Value:
static const struct { \
} __packed default_pdr_data_##pid = { \
cpu_to_le16((sizeof(default_pdr_data_##pid)/ \
sizeof(__le16)) - 1), \
cpu_to_le16(pid), \
}

Definition at line 315 of file hermes_dld.c.

#define PDI_END   0x00000000 /* End of PDA */

Definition at line 50 of file hermes_dld.c.

#define PFX   "hermes_dld: "

Definition at line 47 of file hermes_dld.c.

#define TEXT_END   0x1A /* End of text header */

Definition at line 52 of file hermes_dld.c.

Function Documentation

DEFINE_DEFAULT_PDR ( 0x0005  ,
10  ,
"\x00\x00\x06\x00\x01\x00\x01\x00\x01\x00"   
)
DEFINE_DEFAULT_PDR ( 0x0108  ,
,
"\x00\x00\x00\x00"   
)
DEFINE_DEFAULT_PDR ( 0x0109  ,
10  ,
"\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00"   
)
DEFINE_DEFAULT_PDR ( 0x0150  ,
,
"\x00\x3F"   
)
DEFINE_DEFAULT_PDR ( 0x0160  ,
28  ,
"\x00\x00\x00\x00\x00\x00\x00\x00""\x00\x00\x00\x00\x00\x00\x00\x00""\x00\x00\x00\x00\x00\x00\x00\x00""\x00\x00\x00\x00"   
)
DEFINE_DEFAULT_PDR ( 0x0161  ,
256  ,
"\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3F\01\x3F\x01\x3F\x01""\x3F\x01\x3E\01\x3E\x01\x3D\x01""\x3D\x01\x3C\01\x3C\x01\x3B\x01""\x3B\x01\x3A\01\x3A\x01\x39\x01""\x39\x01\x38\01\x38\x01\x37\x01""\x37\x01\x36\01\x36\x01\x35\x01""\x35\x01\x34\01\x34\x01\x33\x01""\x33\x01\x32\x01\x32\x01\x31\x01""\x31\x01\x30\x01\x30\x01\x7B\x01""\x7B\x01\x7A\x01\x7A\x01\x79\x01""\x79\x01\x78\x01\x78\x01\x77\x01""\x77\x01\x76\x01\x76\x01\x75\x01""\x75\x01\x74\x01\x74\x01\x73\x01""\x73\x01\x72\x01\x72\x01\x71\x01""\x71\x01\x70\x01\x70\x01\x68\x01""\x68\x01\x67\x01\x67\x01\x66\x01""\x66\x01\x65\x01\x65\x01\x57\x01""\x57\x01\x56\x01\x56\x01\x55\x01""\x55\x01\x54\x01\x54\x01\x53\x01""\x53\x01\x52\x01\x52\x01\x51\x01""\x51\x01\x50\x01\x50\x01\x48\x01""\x48\x01\x47\x01\x47\x01\x46\x01""\x46\x01\x45\x01\x45\x01\x44\x01""\x44\x01\x43\x01\x43\x01\x42\x01""\x42\x01\x41\x01\x41\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01""\x40\x01\x40\x01\x40\x01\x40\x01"   
)
int hermes_apply_pda ( struct hermes hw,
const char first_pdr,
const void pdr_end,
const __le16 pda,
const void pda_end 
)

Definition at line 223 of file hermes_dld.c.

int hermes_apply_pda_with_defaults ( struct hermes hw,
const char first_pdr,
const void pdr_end,
const __le16 pda,
const void pda_end 
)

Definition at line 390 of file hermes_dld.c.

size_t hermes_blocks_length ( const char first_block,
const void end 
)

Definition at line 254 of file hermes_dld.c.

int hermes_program ( struct hermes hw,
const char first_block,
const void end 
)

Definition at line 277 of file hermes_dld.c.

Variable Documentation