Tuesday, September 28, 2010

Bare Metal: PuppyBeagle platform definition header file [beagle.h]

#ifndef __BEAGLE_H__
#define __BEAGLE_H__

#define MMC_REG_BASE 0x4809C010
#define UART3_REG_BASE 0x49020000
#define SDRC_REG_BASE 0x6D000010

#define UART3_OP_MODE 0x3
#define UART3_B_MODE 0xBF
#define UART_RST_MASK 0x2
#define BAUD_115200 0x1A
#define UART_16X_MODE 0xFFFFFFF0
#define UART_TXFIFO_EMPTY 0x00000020

#define RAMSZ_TYP_CLR 0xFFFC00FE
#define RAMSZ_TYP 0x00007801


#define MMC_CLOCK_EN 0x01000000
#define MMC_SW_RESET 0x2
#define MMC_RESET_DONE 0x2
#define MMC_1_8_N_3_V 0x06000000

typedef struct {
unsigned int MMC_SYSCONFIG;
unsigned int MMC_SYSSTATUS;
unsigned int MMC_CSRE;
unsigned int MMC_SYSTEST;
unsigned int MMC_CON;
unsigned int MMC_PWCNT;
unsigned int MMC_BLK;
unsigned int MMC_ARG;
unsigned int MMC_CMD;
unsigned int MMC_RSP10;
unsigned int MMC_RSP32;
unsigned int MMC_RSP54;
unsigned int MMC_RSP76;
unsigned int MMC_DATA;
unsigned int MMC_PSTATE;
unsigned int MMC_HCTL;
unsigned int MMC_SYSCTL;
unsigned int MMC_STAT;
unsigned int MMC_IE;
unsigned int MMC_ISE;
unsigned int MMC_AC12;
unsigned int MMC_CAPA;
unsigned int MMC_CUR_CAPA;
unsigned int MMC_REV;
} mmc_reg;

typedef struct {
unsigned int UART_THR;
unsigned int UART_IER;
unsigned int UART_FCR;
unsigned int UART_LCR;
unsigned int UART_MCR;
unsigned int UART_LSR;
unsigned int UART_MSR_TCR;
unsigned int UART_SPR_TLR;
unsigned int UART_MDR1;
unsigned int UART_MDR2;
unsigned int UART_SFLSR;
unsigned int UART_TXFLL;
unsigned int UART_RESUME;
unsigned int UART_TXFLH;
unsigned int UART_RXFLL;
unsigned int UART_SFREGL;
unsigned int UART_RXFLH;
unsigned int UART_SFREGH;
unsigned int UART_BLR;
unsigned int UART_ACREG;
unsigned int UART_SCR;
unsigned int UART_SSR;
unsigned int UART_EBLR;
unsigned int UART_SYSC;
unsigned int UART_SYSS;
unsigned int UART_WER;
unsigned int UART_CFPS;
} uart_reg;

typedef struct {
unsigned int SDRC_SYSCONFIG; //0x10
unsigned int SDRC_SYSSTATUS;//0x14
unsigned int rsvd1[10];//0x18,1c,20,24,28,2c,30,34,38,3c
unsigned int SDRC_CS_CFG;//40
unsigned int SDRC_SHARING;//44
unsigned int SDRC_ERR_ADDR;//48
unsigned int SDRC_ERR_TYPE;//4c
unsigned int rsvd2[4];//50,54,58,5c
unsigned int SDRC_DLLA_CTRL;//60
unsigned int SDRC_DLLA_STATUS;//64
unsigned int rsvd5[2];//68,6c
unsigned int SDRC_POWER_REG; //70
unsigned int rsvd3[3];//74,78,7c
unsigned int SDRC_MCFG_0;//80
unsigned int SDRC_MR_0;//84
unsigned int SDRC_EMR2_0;//8c
unsigned int rsvd4[3];//90,94,98
unsigned int SDRC_ACTIM_CTRLA_0;//9c
unsigned int SDRC_ACTIM_CTRLB_0;//a0
unsigned int SDRC_RFR_CTRL_0;//a4
unsigned int SDRC_MANUAL_0;//a8
} sdrc_reg;

//volatile unsigned int *PRCM_CM_ICLKEN1_CORE = (unsigned int *) 0x48004A10;
//volatile unsigned int *PRCM_CM_FCLKEN1_CORE = (unsigned int *) 0x48004A00;

#endif

No comments:

Post a Comment