70 lines
2.1 KiB
C
70 lines
2.1 KiB
C
|
/*
|
||
|
* 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__ */
|