aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dpram/raffaello/dpram_recovery.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dpram/raffaello/dpram_recovery.h')
-rw-r--r--drivers/dpram/raffaello/dpram_recovery.h132
1 files changed, 132 insertions, 0 deletions
diff --git a/drivers/dpram/raffaello/dpram_recovery.h b/drivers/dpram/raffaello/dpram_recovery.h
new file mode 100644
index 0000000..38a76ae
--- /dev/null
+++ b/drivers/dpram/raffaello/dpram_recovery.h
@@ -0,0 +1,132 @@
+#ifndef __DPRAM_RECOVERY_H__
+#define __DPRAM_RECOVERY_H__
+
+
+
+/* interupt masks */
+#define MASK_CMD_FOTA_IMG_RECEIVE_READY_RESP 0x0100
+#define MASK_CMD_FOTA_IMG_SEND_RESP 0x0200
+#define MASK_CMD_FOTA_SEND_DONE_RESP 0x0300
+#define MASK_CMD_FOTA_UPDATE_START_RESP 0x0400
+#define MASK_CMD_FOTA_UPDATE_STATUS_IND 0x0500
+#define MASK_CMD_FOTA_UPDATE_END_IND 0x0C00
+
+/* FORMAT */
+#define CMD_FOTA_IMG_RECEIVE_READY_REQ 0x9100
+#define CMD_FOTA_IMG_SEND_REQ 0x9200
+#define CMD_FOTA_SEND_DONE_REQ 0x9300
+#define CMD_FOTA_UPDATE_START_REQ 0x9400
+#define CMD_FOTA_UPDATE_STATUS_IND 0x9500
+#define CMD_FOTA_INIT_START_REQ 0x9A00
+#define CMD_FOTA_INIT_START_RES 0x9B00
+#define CMD_FOTA_UPDATE_END_IND 0x9C00
+
+#define CMD_RETRY 0
+#define CMD_TRUE 1
+#define CMD_FALSE -1
+
+#define CMD_DL_SEND_DONE_REQ 0x9600
+#define CMD_PHONE_BOOT_UPDATE 0x0001
+#define MASK_CMD_SEND_DONE_RESPONSE 0x0700
+#define MASK_CMD_STATUS_UPDATE_NOTIFICATION 0x0800
+#define MASK_CMD_UPDATE_DONE_NOTIFICATION 0x0900
+#define MASK_CMD_IMAGE_SEND_RESPONSE 0x0500
+
+/* Result mask */
+#define MASK_CMD_RESULT_FAIL 0x0002
+#define MASK_CMD_RESULT_SUCCESS 0x0001
+
+#define MASK_CMD_VALID 0x8000
+#define MASK_PDA_CMD 0x1000
+#define MASK_PHONE_CMD 0x2000
+
+#define MAGIC_FODN 0x4E444F46 /* PDA initiate phone code */
+#define MAGIC_FOTA 0x41544C44 /* PDA initiate phone code */
+#define MAGIC_DMDL 0x444D444C
+#define MAGIC_ALARMBOOT 0x00410042
+
+/* DPRAM */
+#define DPRAM_BASE_ADDR S5P_PA_MODEMIF
+#define DPRAM_MAGIC_CODE_SIZE 0x4
+#define DPRAM_PDA2PHONE_FORMATTED_START_ADDRESS (DPRAM_MAGIC_CODE_SIZE)
+#define DPRAM_PHONE2PDA_INTERRUPT_ADDRESS (0x3FFE)
+#define DPRAM_PDA2PHONE_INTERRUPT_ADDRESS (0x3FFC)
+#define DPRAM_BUFFER_SIZE (DPRAM_PDA2PHONE_INTERRUPT_ADDRESS - DPRAM_PDA2PHONE_FORMATTED_START_ADDRESS)
+#define BSP_DPRAM_BASE_SIZE 0x4000 /* 16KB DPRAM in Mirage */
+#define DPRAM_END_OF_ADDRESS (BSP_DPRAM_BASE_SIZE - 1)
+#define DPRAM_INTERRUPT_SIZE 0x2
+#define DPRAM_INDEX_SIZE 0x2
+#define DELTA_PACKET_SIZE (0x4000 - 0x4 - 0x4)
+#define WRITEIMG_HEADER_SIZE 8
+#define WRITEIMG_TAIL_SIZE 4
+#define WRITEIMG_BODY_SIZE (DPRAM_BUFFER_SIZE - WRITEIMG_HEADER_SIZE - WRITEIMG_TAIL_SIZE)
+#define FODN_DEFAULT_WRITE_LEN WRITEIMG_BODY_SIZE
+#define DPRAM_START_ADDRESS 0
+#define DPRAM_END_OF_ADDRESS (BSP_DPRAM_BASE_SIZE - 1)
+#define DPRAM_SIZE BSP_DPRAM_BASE_SIZE
+
+/* ioctl commands */
+#define IOCTL_ST_FW_UPDATE _IO('D', 0x1)
+#define IOCTL_CHK_STAT _IO('D', 0x2)
+#define IOCTL_MOD_PWROFF _IO('D', 0x3)
+#define IOCTL_WRITE_MAGIC_CODE _IO('D', 0x4)
+#define IOCTL_ST_FW_DOWNLOAD _IO('D', 0x5)
+
+#define GPIO_QSC_INT GPIO_C210_DPRAM_INT_N
+#define IRQ_QSC_INT GPIO_QSC_INT
+
+/* Common */
+#define TRUE 1
+#define FALSE 0
+
+#define GPIO_IN 0
+#define GPIO_OUT 1
+#define GPIO_LOW 0
+#define GPIO_HIGH 1
+
+#define START_INDEX 0x007F
+#define END_INDEX 0x007E
+
+#define DPRAM_MODEM_MSG_SIZE 0x100
+
+typedef struct {
+ unsigned int int2ap;
+ unsigned int int2msm;
+ unsigned int mifcon;
+ unsigned int mifpcon;
+ unsigned int msmintclr;
+ unsigned int dma_tx_adr;
+ unsigned int dma_rx_adr;
+} IDPRAM_SFR;
+
+/* It is recommended that S5PC110 write data with half-word access on the interrupt port because
+S5PC100 overwrites tha data in INT2AP if there are INT2AP and INT2MSM sharing the same word */
+#define IDPRAM_INT2MSM_MASK 0xFF
+
+#define IDPRAM_MIFCON_INT2APEN (1<<2)
+#define IDPRAM_MIFCON_INT2MSMEN (1<<3)
+#define IDPRAM_MIFCON_DMATXREQEN_0 (1<<16)
+#define IDPRAM_MIFCON_DMATXREQEN_1 (1<<17)
+#define IDPRAM_MIFCON_DMARXREQEN_0 (1<<18)
+#define IDPRAM_MIFCON_DMARXREQEN_1 (1<<19)
+#define IDPRAM_MIFCON_FIXBIT (1<<20)
+
+#define IDPRAM_MIFPCON_ADM_MODE (1<<6) /* mux / demux mode */
+
+/* end */
+
+struct dpram_firmware {
+ char *firmware;
+ int size;
+ int image_type;
+};
+
+struct stat_info {
+ int pct;
+ char msg[DPRAM_MODEM_MSG_SIZE];
+};
+
+#define DPRAM_MODEM_DELTA_IMAGE 0
+#define DPRAM_MODEM_FULL_IMAGE 1
+
+#endif /* __DPRAM_RECOVERY_H__ */