Merge "bootloader/lk: Add new msm7630_1x target"
diff --git a/platform/msm_shared/include/mmc.h b/platform/msm_shared/include/mmc.h
index 9b49a34..a58abbe 100755
--- a/platform/msm_shared/include/mmc.h
+++ b/platform/msm_shared/include/mmc.h
@@ -250,6 +250,10 @@
#define MMC_BOOT_MCI_FIFO MMC_BOOT_MCI_REG(0x080)
+/* Card status */
+#define MMC_BOOT_CARD_STATUS(x) ((x>>9) & 0x0F)
+#define MMC_BOOT_TRAN_STATE 4
+
/* SD Memory Card bus commands */
#define CMD0_GO_IDLE_STATE 0
#define CMD1_SEND_OP_COND 1
@@ -257,8 +261,10 @@
#define CMD3_SEND_RELATIVE_ADDR 3
#define CMD4_SET_DSR 4
#define CMD6_SWITCH_FUNC 6
+#define ACMD6_SET_BUS_WIDTH 6 /* SD card */
#define CMD7_SELECT_DESELECT_CARD 7
#define CMD8_SEND_EXT_CSD 8
+#define CMD8_SEND_IF_COND 8 /* SD card */
#define CMD9_SEND_CSD 9
#define CMD10_SEND_CID 10
#define CMD12_STOP_TRANSMISSION 12
@@ -272,7 +278,9 @@
#define CMD32_ERASE_WR_BLK_START 32
#define CMD33_ERASE_WR_BLK_END 33
#define CMD38_ERASE 38
-#define CMD55_APP_CMD 55
+#define ACMD41_SEND_OP_COND 41 /* SD card */
+#define ACMD51_SEND_SCR 51 /* SD card */
+#define CMD55_APP_CMD 55 /* SD card */
/* Switch Function Modes */
#define MMC_BOOT_SWITCH_FUNC_CHECK 0
@@ -360,6 +368,13 @@
#define MMC_BOOT_EXT_CMMC_HS_TIMING 185
#define MMC_BOOT_EXT_CMMC_BUS_WIDTH 183
+/* For SD */
+#define MMC_BOOT_SD_HC_VOLT_SUPPLIED 0x000001AA
+#define MMC_BOOT_SD_NEG_OCR 0x00FF8000
+#define MMC_BOOT_SD_HC_HCS 0x40000000
+#define MMC_BOOT_SD_DEV_READY 0x80000000
+#define MMC_BOOT_SD_SWITCH_HS 0x80FFFF01
+
/* Data structure definitions */
struct mmc_boot_command
{
@@ -439,6 +454,7 @@
#define MMC_BOOT_TYPE_STD_SD 0
#define MMC_BOOT_TYPE_SDHC 1
#define MMC_BOOT_TYPE_SDIO 2
+#define MMC_BOOT_TYPE_MMCHC 3
unsigned int status;
#define MMC_BOOT_STATUS_INACTIVE 0
#define MMC_BOOT_STATUS_ACTIVE 1
diff --git a/platform/msm_shared/mmc.c b/platform/msm_shared/mmc.c
index ab390f6..4f657e1 100644
--- a/platform/msm_shared/mmc.c
+++ b/platform/msm_shared/mmc.c
@@ -181,7 +181,7 @@
return MMC_BOOT_E_INVAL;
}
- if( card->type == MMC_BOOT_TYPE_SDHC )
+ if( (card->type == MMC_BOOT_TYPE_MMCHC) || (card->type == MMC_BOOT_TYPE_SDHC) )
{
card->rd_timeout_ns = 100000000;
}
@@ -212,7 +212,7 @@
return MMC_BOOT_E_INVAL;
}
- if( card->type == MMC_BOOT_TYPE_SDHC )
+ if( (card->type == MMC_BOOT_TYPE_MMCHC) || (card->type == MMC_BOOT_TYPE_SDHC) )
{
card->wr_timeout_ns = 100000000;
}
@@ -497,7 +497,8 @@
Spcial case for ACMD41: it seems to always fail CRC even if
the response is valid
*/
- else if (( mmc_status & MMC_BOOT_MCI_STAT_CMD_RESP_END ) || (cmd_index == CMD1_SEND_OP_COND))
+ else if (( mmc_status & MMC_BOOT_MCI_STAT_CMD_RESP_END ) || (cmd_index == CMD1_SEND_OP_COND)
+ || (cmd_index == CMD8_SEND_IF_COND))
{
/* 3i. Read MCI_RESP_CMD register to verify that response index is
equal to command index */
@@ -508,7 +509,8 @@
if( ( mmc_resp == cmd_index ) ||
( cmd->resp_type == MMC_BOOT_RESP_R2 ||
cmd->resp_type == MMC_BOOT_RESP_R3 ||
- cmd->resp_type == MMC_BOOT_RESP_R6 ) )
+ cmd->resp_type == MMC_BOOT_RESP_R6 ||
+ cmd->resp_type == MMC_BOOT_RESP_R7 ) )
{
/* 3j. If resp index is equal to cmd index, read command resp
from MCI_RESPn registers
@@ -541,7 +543,12 @@
but CRC check failed. */
else if( ( mmc_status & MMC_BOOT_MCI_STAT_CMD_CRC_FAIL ) )
{
- mmc_return = MMC_BOOT_E_CRC_FAIL;
+ if(cmd_index == ACMD41_SEND_OP_COND)
+ {
+ cmd->resp[0] = readl( MMC_BOOT_MCI_RESP_0);
+ }
+ else
+ mmc_return = MMC_BOOT_E_CRC_FAIL;
break;
}
@@ -686,17 +693,36 @@
/* CMD3 Format:
* [31:0] stuff bits
*/
- cmd.cmd_index = CMD3_SEND_RELATIVE_ADDR;
- cmd.argument = (MMC_RCA << 16);
- card->rca = (cmd.argument >> 16);
- cmd.cmd_type = MMC_BOOT_CMD_ADDRESS;
- cmd.resp_type = MMC_BOOT_RESP_R1;
-
- /* send command */
- mmc_ret = mmc_boot_send_command( &cmd );
- if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ if(card->type == MMC_BOOT_TYPE_SDHC)
{
- return mmc_ret;
+ cmd.cmd_index = CMD3_SEND_RELATIVE_ADDR;
+ cmd.argument = 0;
+ cmd.cmd_type = MMC_BOOT_CMD_BCAST_W_RESP;
+ cmd.resp_type = MMC_BOOT_RESP_R6;
+
+ /* send command */
+ mmc_ret = mmc_boot_send_command( &cmd );
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
+ /* For sD, card will send RCA. Store it */
+ card->rca = (cmd.resp[0] >> 16);
+ }
+ else
+ {
+ cmd.cmd_index = CMD3_SEND_RELATIVE_ADDR;
+ cmd.argument = (MMC_RCA << 16);
+ card->rca = (cmd.argument >> 16);
+ cmd.cmd_type = MMC_BOOT_CMD_ADDRESS;
+ cmd.resp_type = MMC_BOOT_RESP_R1;
+
+ /* send command */
+ mmc_ret = mmc_boot_send_command( &cmd );
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
}
return MMC_BOOT_E_SUCCESS;
@@ -782,7 +808,10 @@
/* If we are deselecting card, we do not get response */
if( rca == card->rca && rca)
{
- cmd.resp_type = MMC_BOOT_RESP_R1;
+ if(card->type == MMC_BOOT_TYPE_SDHC)
+ cmd.resp_type = MMC_BOOT_RESP_R1B;
+ else
+ cmd.resp_type = MMC_BOOT_RESP_R1;
}
else
{
@@ -887,7 +916,7 @@
* Get the card's current status
*/
static unsigned int mmc_boot_get_card_status( struct mmc_boot_card* card,
- unsigned int prg_enabled )
+ unsigned int prg_enabled, unsigned int* status )
{
struct mmc_boot_command cmd;
unsigned int mmc_ret = MMC_BOOT_E_SUCCESS;
@@ -918,6 +947,7 @@
return mmc_ret;
}
+ *status = cmd.resp[0];
return MMC_BOOT_E_SUCCESS;
}
/*
@@ -1099,6 +1129,8 @@
mmc_width = width-1;
}
+ mmc_boot_send_ext_cmd (card);
+
mmc_ret = mmc_boot_switch_cmd(card, MMC_BOOT_ACCESS_WRITE, MMC_BOOT_EXT_CMMC_BUS_WIDTH, mmc_width);
if( mmc_ret != MMC_BOOT_E_SUCCESS )
@@ -1306,15 +1338,16 @@
unsigned int addr;
unsigned int xfer_type;
unsigned int write_error;
+ unsigned int status;
if( ( host == NULL ) || ( card == NULL ) )
{
return MMC_BOOT_E_INVAL;
}
- /* Set block length. High Capacity MMC card uses fixed 512 bytes block
+ /* Set block length. High Capacity MMC/SD card uses fixed 512 bytes block
length. So no need to send CMD16. */
- if( card->type != MMC_BOOT_TYPE_SDHC )
+ if( (card->type != MMC_BOOT_TYPE_MMCHC) && (card->type != MMC_BOOT_TYPE_SDHC) )
{
mmc_ret = mmc_boot_set_block_len( card, card->wr_block_len );
if( mmc_ret != MMC_BOOT_E_SUCCESS )
@@ -1329,9 +1362,9 @@
xfer_type = (data_len > card->rd_block_len) ? MMC_BOOT_XFER_MULTI_BLOCK :
MMC_BOOT_XFER_SINGLE_BLOCK;
- /* For SDHC data address is specified in unit of 512B */
- addr = ( card->type != MMC_BOOT_TYPE_SDHC ) ? (unsigned int) data_addr :
- (unsigned int) (data_addr / 512);
+ /* For MMCHC/SDHC data address is specified in unit of 512B */
+ addr = ( (card->type != MMC_BOOT_TYPE_MMCHC) && (card->type != MMC_BOOT_TYPE_SDHC) )
+ ? (unsigned int) data_addr : (unsigned int) (data_addr / 512);
/* Set the FLOW_ENA bit of MCI_CLK register to 1 */
mmc_reg = readl( MMC_BOOT_MCI_CLK );
@@ -1446,7 +1479,7 @@
}
else
{
- mmc_ret = mmc_boot_get_card_status( card, 1 );
+ mmc_ret = mmc_boot_get_card_status( card, 1, &status );
if( mmc_ret != MMC_BOOT_E_SUCCESS )
{
dprintf(CRITICAL, "Error No.%d: Failure getting card status of Card(RCA:%x)\n",
@@ -1484,7 +1517,6 @@
/* Setting HS_TIMING in EXT_CSD (CMD6) */
mmc_ret = mmc_boot_switch_cmd(card, MMC_BOOT_ACCESS_WRITE, MMC_BOOT_EXT_CMMC_HS_TIMING, 1);
- mmc_boot_send_ext_cmd (card);
if(mmc_ret!= MMC_BOOT_E_SUCCESS)
{
return mmc_ret;
@@ -1525,9 +1557,9 @@
return MMC_BOOT_E_INVAL;
}
- /* Set block length. High Capacity MMC card uses fixed 512 bytes block
+ /* Set block length. High Capacity MMC/SD card uses fixed 512 bytes block
length. So no need to send CMD16. */
- if( card->type != MMC_BOOT_TYPE_SDHC )
+ if( (card->type != MMC_BOOT_TYPE_MMCHC) && (card->type != MMC_BOOT_TYPE_SDHC) )
{
mmc_ret = mmc_boot_set_block_len( card, card->rd_block_len );
if( mmc_ret != MMC_BOOT_E_SUCCESS )
@@ -1562,9 +1594,9 @@
size. */
writel( data_len, MMC_BOOT_MCI_DATA_LENGTH );
- /* For SDHC data address is specified in unit of 512B */
- addr = ( card->type != MMC_BOOT_TYPE_SDHC ) ? (unsigned int) data_addr :
- (unsigned int) (data_addr / 512);
+ /* For MMCHC/SDHC data address is specified in unit of 512B */
+ addr = ( (card->type != MMC_BOOT_TYPE_MMCHC) && (card->type != MMC_BOOT_TYPE_SDHC) )
+ ? (unsigned int) data_addr :(unsigned int) (data_addr / 512);
/* Set appropriate fields and write the MCI_DATA_CTL register. */
/* Set ENABLE bit to 1 to enable the data transfer. */
@@ -1762,6 +1794,88 @@
return MMC_BOOT_E_SUCCESS;
}
+static unsigned int mmc_boot_send_app_cmd(unsigned int rca)
+{
+ struct mmc_boot_command cmd;
+ unsigned int mmc_ret = MMC_BOOT_E_SUCCESS;
+
+ memset( (struct mmc_boot_command *)&cmd, 0,
+ sizeof(struct mmc_boot_command) );
+
+ cmd.cmd_index = CMD55_APP_CMD;
+ cmd.argument = (rca << 16);
+ cmd.cmd_type = MMC_BOOT_CMD_ADDRESS;
+ cmd.resp_type = MMC_BOOT_RESP_R1;
+
+ mmc_ret = mmc_boot_send_command(&cmd);
+
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
+
+ return MMC_BOOT_E_SUCCESS;
+}
+
+static unsigned int mmc_boot_sd_init_card(void)
+{
+ unsigned int i,mmc_ret;
+ unsigned int ocr_cmd_arg;
+ struct mmc_boot_command cmd;
+
+ memset( (struct mmc_boot_command *)&cmd, 0,
+ sizeof(struct mmc_boot_command) );
+
+ /* Send CMD8 to set interface condition */
+ for(i=0;i<3;i++)
+ {
+ cmd.cmd_index = CMD8_SEND_IF_COND;
+ cmd.argument = MMC_BOOT_SD_HC_VOLT_SUPPLIED;
+ cmd.cmd_type = MMC_BOOT_CMD_BCAST_W_RESP;
+ cmd.resp_type = MMC_BOOT_RESP_R7;
+
+ mmc_ret = mmc_boot_send_command(&cmd);
+ if( mmc_ret == MMC_BOOT_E_SUCCESS )
+ {
+ if(cmd.resp[0] != MMC_BOOT_SD_HC_VOLT_SUPPLIED)
+ return MMC_BOOT_E_FAILURE;
+ /* Set argument for ACMD41 */
+ ocr_cmd_arg = MMC_BOOT_SD_NEG_OCR | MMC_BOOT_SD_HC_HCS;
+ break;
+ }
+ mdelay(1);
+ }
+
+ /* Send ACMD41 to set operating condition */
+ /* Try for a max of 1 sec as per spec */
+ for(i=0;i<20;i++)
+ {
+ mmc_ret = mmc_boot_send_app_cmd(0);
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
+
+ cmd.cmd_index = ACMD41_SEND_OP_COND;
+ cmd.argument = ocr_cmd_arg;
+ cmd.cmd_type = MMC_BOOT_CMD_BCAST_W_RESP;
+ cmd.resp_type = MMC_BOOT_RESP_R3;
+
+ mmc_ret = mmc_boot_send_command(&cmd);
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
+ else if (cmd.resp[0] & MMC_BOOT_SD_DEV_READY)
+ {
+ /* Check for HC later */
+ break;
+ }
+ mdelay(50);
+ }
+ return MMC_BOOT_E_SUCCESS;
+}
+
/*
* Routine to initialize MMC card. It resets a card to idle state, verify operating
* voltage and set the card inready state.
@@ -1778,7 +1892,7 @@
return MMC_BOOT_E_INVAL;
}
- /* 1. Card Reset - not necessary*/
+ /* 1. Card Reset - CMD0 */
mmc_return = mmc_boot_reset_cards();
if( mmc_return != MMC_BOOT_E_SUCCESS )
{
@@ -1810,6 +1924,14 @@
{
dprintf(CRITICAL, "Error No. %d: Failure Initializing MMC Card!\n",
mmc_return );
+
+ /* Check for sD card */
+ mmc_return = mmc_boot_sd_init_card();
+ if (mmc_return == MMC_BOOT_E_SUCCESS)
+ {
+ card->type = MMC_BOOT_TYPE_SDHC;
+ }
+
return mmc_return;
}
}while( mmc_retry < host->cmd_retry );
@@ -1824,12 +1946,101 @@
}
/*Assuming high capacity mmc card*/
- card->type = MMC_BOOT_TYPE_SDHC;
+ card->type = MMC_BOOT_TYPE_MMCHC;
return MMC_BOOT_E_SUCCESS;
}
+static unsigned int mmc_boot_set_sd_bus_width(struct mmc_boot_card* card, unsigned int width)
+{
+ struct mmc_boot_command cmd;
+ unsigned int mmc_ret = MMC_BOOT_E_SUCCESS;
+ unsigned int sd_reg;
+
+ mmc_ret = mmc_boot_send_app_cmd(card->rca);
+
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
+
+ memset( (struct mmc_boot_command *)&cmd, 0,
+ sizeof(struct mmc_boot_command) );
+
+ /* Send ACMD6 to set bus width */
+ cmd.cmd_index = ACMD6_SET_BUS_WIDTH;
+ /* 10 => 4 bit wide */
+ cmd.argument = (1<<1);
+ cmd.cmd_type = MMC_BOOT_CMD_ADDRESS;
+ cmd.resp_type = MMC_BOOT_RESP_R1;
+
+ mmc_ret = mmc_boot_send_command(&cmd);
+
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
+
+ /* set MCI_CLK accordingly */
+ sd_reg = readl( MMC_BOOT_MCI_CLK );
+ sd_reg &= ~MMC_BOOT_MCI_CLK_WIDEBUS_MODE;
+ if ( width == MMC_BOOT_BUS_WIDTH_1_BIT )
+ {
+ sd_reg |= MMC_BOOT_MCI_CLK_WIDEBUS_1_BIT;
+ }
+ else if (width == MMC_BOOT_BUS_WIDTH_4_BIT )
+ {
+ sd_reg |= MMC_BOOT_MCI_CLK_WIDEBUS_4_BIT;
+ }
+ else if (width == MMC_BOOT_BUS_WIDTH_8_BIT )
+ {
+ sd_reg |= MMC_BOOT_MCI_CLK_WIDEBUS_8_BIT;
+ }
+ writel( sd_reg, MMC_BOOT_MCI_CLK );
+
+ mdelay(10); // Giving some time to card to stabilize.
+
+ return MMC_BOOT_E_SUCCESS;
+}
+
+static unsigned int mmc_boot_set_sd_hs(struct mmc_boot_host* host, struct mmc_boot_card* card)
+{
+ struct mmc_boot_command cmd;
+ unsigned int mmc_ret;
+
+ memset( (struct mmc_boot_command *)&cmd, 0,
+ sizeof(struct mmc_boot_command) );
+
+ /* Send CMD6 function mode 1 to set high speed */
+ /* Not using mode 0 to read current consumption */
+ cmd.cmd_index = CMD6_SWITCH_FUNC;
+ cmd.argument = MMC_BOOT_SD_SWITCH_HS;
+ cmd.cmd_type = MMC_BOOT_CMD_ADDRESS;
+ cmd.resp_type = MMC_BOOT_RESP_R1;
+
+ mmc_ret = mmc_boot_send_command(&cmd);
+
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return mmc_ret;
+ }
+
+ mdelay(1);
+
+#ifdef PLATFORM_MSM8X60
+ mmc_ret = mmc_boot_enable_clock( host, MMC_CLK_48MHZ);
+#else
+ mmc_ret = mmc_boot_enable_clock( host, MMC_CLK_50MHZ);
+#endif
+ if( mmc_ret != MMC_BOOT_E_SUCCESS )
+ {
+ return MMC_BOOT_E_CLK_ENABLE_FAIL;
+ }
+
+ return MMC_BOOT_E_SUCCESS;
+}
+
/*
* Performs initialization and identification of all the MMC cards connected
* to the host.
@@ -1838,6 +2049,7 @@
static unsigned int mmc_boot_init_and_identify_cards( struct mmc_boot_host* host, struct mmc_boot_card* card )
{
unsigned int mmc_return = MMC_BOOT_E_SUCCESS;
+ unsigned int status;
/* Basic check */
if( host == NULL )
@@ -1873,23 +2085,50 @@
return mmc_return;
}
- /* set interface speed */
- mmc_return = mmc_boot_adjust_interface_speed( host, card );
- if( mmc_return != MMC_BOOT_E_SUCCESS )
+ if(card->type == MMC_BOOT_TYPE_SDHC)
{
- dprintf(CRITICAL, "Error No.%d: Error adjusting interface speed!\n",
- mmc_return );
+ mmc_return = mmc_boot_set_sd_hs(host, card);
+ if(mmc_return != MMC_BOOT_E_SUCCESS)
+ {
+ return mmc_return;
+ }
+
+ mmc_return = mmc_boot_set_sd_bus_width(card, MMC_BOOT_BUS_WIDTH_4_BIT);
+ if(mmc_return != MMC_BOOT_E_SUCCESS)
+ {
+ return mmc_return;
+ }
+ }
+ else
+ {
+ /* set interface speed */
+ mmc_return = mmc_boot_adjust_interface_speed( host, card );
+ if( mmc_return != MMC_BOOT_E_SUCCESS )
+ {
+ dprintf(CRITICAL, "Error No.%d: Error adjusting interface speed!\n",
+ mmc_return );
+ return mmc_return;
+ }
+
+ /* enable wide bus */
+ mmc_return = mmc_boot_set_bus_width( card, MMC_BOOT_BUS_WIDTH_4_BIT );
+ if( mmc_return != MMC_BOOT_E_SUCCESS )
+ {
+ dprintf(CRITICAL, "Error No.%d: Failure to set wide bus for Card(RCA:%x)\n",
+ mmc_return, card->rca );
+ return mmc_return;
+ }
+ }
+
+ /* Just checking whether we're in TRAN state after changing speed and bus width */
+ mmc_return = mmc_boot_get_card_status(card, 1, &status);
+ if(mmc_return != MMC_BOOT_E_SUCCESS)
+ {
return mmc_return;
}
- /* enable wide bus */
- mmc_return = mmc_boot_set_bus_width( card, MMC_BOOT_BUS_WIDTH_4_BIT );
- if( mmc_return != MMC_BOOT_E_SUCCESS )
- {
- dprintf(CRITICAL, "Error No.%d: Failure to set wide bus for Card(RCA:%x)\n",
- mmc_return, card->rca );
- return mmc_return;
- }
+ if(MMC_BOOT_CARD_STATUS(status) != MMC_BOOT_TRAN_STATE)
+ return MMC_BOOT_E_FAILURE;
return MMC_BOOT_E_SUCCESS;
}
diff --git a/target/msm7630_surf/init.c b/target/msm7630_surf/init.c
index 2e7bdd9..371ad1e 100644
--- a/target/msm7630_surf/init.c
+++ b/target/msm7630_surf/init.c
@@ -88,7 +88,7 @@
},
{
.start = DIFF_START_ADDR,
- .length = 115 /* In MB */,
+ .length = 120 /* In MB */,
.name = "system",
},
{
@@ -205,8 +205,8 @@
base_addr = mmc_sdc_base[slot-1];
if(mmc_boot_main(slot, base_addr))
{
-// dprintf(CRITICAL, "mmc init failed!");
-// ASSERT(0);
+ dprintf(CRITICAL, "mmc init failed!");
+ ASSERT(0);
}
}
return;
diff --git a/target/msm7630_surf/tools/makefile b/target/msm7630_surf/tools/makefile
index 4082eee..db458e6 100644
--- a/target/msm7630_surf/tools/makefile
+++ b/target/msm7630_surf/tools/makefile
@@ -35,7 +35,7 @@
rm -f $(APPSBOOTHEADER_DIR)/emmc_appsboothd.mbn
emmc_appsboothd.mbn: mkheader $(OUTBIN)
- $(SRC_DIR)/mkheader $(OUTBIN) $(APPSBOOTHEADER_DIR)/emmc_appsboothd.mbn unified-boot
+ $(SRC_DIR)/mkheader $(OUTBIN) $(APPSBOOTHEADER_DIR)/emmc_appsboothd.mbn
mkheader: $(SRC_DIR)/mkheader.c
${COMPILER} -DMEMBASE=$(MEMBASE) $(SRC_DIR)/mkheader.c -o $(SRC_DIR)/mkheader
diff --git a/target/msm7630_surf/tools/mkheader.c b/target/msm7630_surf/tools/mkheader.c
index 852443c..c7ad742 100644
--- a/target/msm7630_surf/tools/mkheader.c
+++ b/target/msm7630_surf/tools/mkheader.c
@@ -66,7 +66,7 @@
magic[11] = 0x00000001; /* cookie version */
magic[12] = 0x00000002; /* file formats */
magic[13] = 0x00000000;
- magic[14] = 0x00500000; /* not setting size for boot.img */
+ magic[14] = 0x00000000; /* not setting size for boot.img */
magic[15] = 0x00000000;
magic[16] = 0x00000000;
magic[17] = 0x00000000;
diff --git a/target/qsd8250_ffa/init.c b/target/qsd8250_ffa/init.c
index 6a99bf9..ddf91d8 100644
--- a/target/qsd8250_ffa/init.c
+++ b/target/qsd8250_ffa/init.c
@@ -61,7 +61,7 @@
},
{
.start = DIFF_START_ADDR,
- .length = 95 /* In MB */,
+ .length = 100 /* In MB */,
.name = "system",
},
{
diff --git a/target/qsd8250_surf/init.c b/target/qsd8250_surf/init.c
index 9aebf05..eccf1c5 100644
--- a/target/qsd8250_surf/init.c
+++ b/target/qsd8250_surf/init.c
@@ -61,7 +61,7 @@
},
{
.start = DIFF_START_ADDR,
- .length = 95 /* In MB */,
+ .length = 100 /* In MB */,
.name = "system",
},
{
diff --git a/target/qsd8650a_st1x/init.c b/target/qsd8650a_st1x/init.c
index 5d1cc63..68ef80a 100644
--- a/target/qsd8650a_st1x/init.c
+++ b/target/qsd8650a_st1x/init.c
@@ -61,21 +61,21 @@
},
{
.start = 40,
- .length = 760 /* 95MB */,
+ .length = 800 /* 100MB */,
.name = "system",
},
{
- .start = 800,
+ .start = 840,
.length = 240 /* 30MB */,
.name = "cache",
},
{
- .start = 1040,
+ .start = 1080,
.length = 3 /* 384KB */,
.name = "misc",
},
{
- .start = 1043,
+ .start = 1083,
.length = VARIABLE_LENGTH,
.name = "userdata",
},