diff options
Diffstat (limited to 'samba.h')
-rw-r--r-- | samba.h | 69 |
1 files changed, 69 insertions, 0 deletions
@@ -0,0 +1,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__ */ |