aboutsummaryrefslogtreecommitdiffstats
path: root/samba.h
blob: 931c9ca2fc1e22f1a18536c7ae442970ab1cf602 (plain)
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
/*
 * samba.h
 *
 * Copyright (C) 2005 Erik Gilling, all rights reserved
 *
 *	This program is free software; you can redistribute it and/or
 *	modify it under the terms of the GNU General Public License as
 *	published by the Free Software Foundation, version 2.
 *
 */

#ifndef __samba_h__
#define __samba_h__


#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif

#define AT91_CHIPID_VERSION( chipid ) (((chipid)>>0)&0x1f)
#define AT91_CHIPID_EPROC( chipid ) (((chipid)>>5)&0x7)
#define AT91_CHIPID_NVPSIZ( chipid ) (((chipid)>>8)&0xf)
#define AT91_CHIPID_NVPSIZ2( chipid ) (((chipid)>>12)&0xf)
#define AT91_CHIPID_SRAMSIZ( chipid ) (((chipid)>>16)&0xf)
#define AT91_CHIPID_ARCH( chipid ) (((chipid)>>20)&0xff)
#define AT91_CHIPID_NVPTYP( chipid ) (((chipid)>>28)&0x7)
#define AT91_CHIPID_EXT( chipid ) (((chipid)>>31)&0x1)

#define AT91_ARCH_AT75Cxx      0xF0
#define AT91_ARCH_AT91x40      0x40
#define AT91_ARCH_AT91x63      0x63
#define AT91_ARCH_AT91x55      0x55
#define AT91_ARCH_AT91x42      0x42
#define AT91_ARCH_AT91x92      0x92
#define AT91_ARCH_AT91x34      0x34
#define AT91_ARCH_AT91SAM7Axx  0x60
#define AT91_ARCH_AT91SAM7Sxx  0x70
#define AT91_ARCH_AT91SAM7XC   0x71
#define AT91_ARCH_AT91SAM7SExx 0x72
#define AT91_ARCH_AT91SAM7Lxx  0x73
#define AT91_ARCH_AT91SAM7Xxx  0x75
#define AT91_ARCH_AT91SAM9xx   0x19

typedef struct {
  int version;
  int eproc;
  int nvpsiz;
  int nvpsiz2;
  int sramsiz;
  int arch;
  int page_size;
  int lock_bits;
} at91_chip_info_t;

extern at91_chip_info_t samba_chip_info;

int samba_init( void );
int samba_write_byte( uint32_t addr, uint8_t value );
int samba_read_byte( uint32_t addr, uint8_t *value );
int samba_write_half_word( uint32_t addr, uint16_t value );
int samba_read_half_word( uint32_t addr, uint16_t *value );
int samba_write_word( uint32_t addr, uint32_t value );
int samba_read_word( uint32_t addr, uint32_t *value );
int samba_send_file( uint32_t addr, uint8_t *buff, int len );
int samba_recv_file( uint32_t addr, uint8_t *buff, int len );
int samba_go( uint32_t addr );
int samba_get_version( char *version, int len );

#endif /* __samba_h__ */