summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/gp32/smc/smc.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/arm/gp32/smc/smc.c78
1 files changed, 39 insertions, 39 deletions
diff --git a/c/src/lib/libbsp/arm/gp32/smc/smc.c b/c/src/lib/libbsp/arm/gp32/smc/smc.c
index f204f7456c..118eaffc43 100644
--- a/c/src/lib/libbsp/arm/gp32/smc/smc.c
+++ b/c/src/lib/libbsp/arm/gp32/smc/smc.c
@@ -1,7 +1,7 @@
/* smc.c -- s3c2400 smc disk block device implementation
- Squidge's SMC Low-level access routines.
- Inspired and derived from routines provided by Samsung Electronics M/M R&D Center & FireFly.
+ Squidge's SMC Low-level access routines.
+ Inspired and derived from routines provided by Samsung Electronics M/M R&D Center & FireFly.
*/
@@ -96,7 +96,7 @@ static void sm_write( uint8_t data)
static uint8_t sm_read(void)
{
uint8_t data;
-
+
rPDDAT &= (~0x100);
data = rPBDAT & 0xFF;
rPDDAT |= 0x100;
@@ -135,7 +135,7 @@ static uint8_t sm_status()
void smc_read_id( uint8_t* buf, uint32_t length)
{
-
+
uint32_t i;
sm_chip_en();
@@ -163,8 +163,8 @@ void smc_read_id( uint8_t* buf, uint32_t length)
uint8_t smc_read_page (uint32_t lpage, uint8_t* buf)
{
uint32_t block, page, i;
-
- /* convert logical block to physical block
+
+ /* convert logical block to physical block
and then convert into page suitable for read1 command...
*/
block = lpage >> 5;
@@ -174,9 +174,9 @@ uint8_t smc_read_page (uint32_t lpage, uint8_t* buf)
}
else
return 0;
-
+
sm_chip_en();
-
+
sm_cle_en();
sm_write_en();
sm_write(READ1_CMD);
@@ -191,20 +191,20 @@ uint8_t smc_read_page (uint32_t lpage, uint8_t* buf)
if (smc_info.mb >= 64) sm_write( (uint8_t)(page >> 16));
sm_write_dis();
sm_ale_dis();
-
+
sm_busy();
-
+
sm_read_en();
for (i = 0; i < 512; i++)
- {
+ {
*buf = sm_read();
buf++;
}
sm_read_dis();
sm_chip_dis();
-
+
sm_busy();
- return 1;
+ return 1;
}
void smc_read_spare( uint32_t page, uint8_t* buf, uint8_t length)
@@ -257,7 +257,7 @@ void smc_make_l2p(void)
{
/* read physical block - first page */
smc_read_spare( pblock*smc_info.pages_per_block, (uint8_t*)&data, 16);
-
+
zone = pblock >> 10; /* divide by 1024 to get zone */
if ((data[5] == 0xFF) && ((data[6]&0xF8) == 0x10))
{
@@ -282,7 +282,7 @@ void smc_make_l2p(void)
{
smc_p2l[pblock] = BLOCK_RESERVED;
cnt3++;
- }
+ }
}
}
}
@@ -327,7 +327,7 @@ void smc_init( void)
{
unsigned char buf[32];
int i;
-
+
/* reset smc */
sm_chip_en();
sm_cle_en();
@@ -335,16 +335,16 @@ void smc_init( void)
sm_write(0xFF);
sm_write_dis();
sm_cle_dis();
- for(i=0;i<10;i++);
+ for(i=0;i<10;i++);
sm_busy();
sm_chip_dis();
-
+
smc_read_id (buf, 4);
smc_detect (buf[0], buf[1], buf[2]);
printk ("SMC: [%02X-%02X-%02X-%02X]\n", buf[0], buf[1], buf[2], buf[3]);
printk ("SMC size: %dMB detected\n",smc_info.mb);
smc_make_l2p();
-}
+}
/**********
* Function: sm_ECCEncode (completely ripped, unaltered, from the samsung routines)
@@ -352,7 +352,7 @@ void smc_init( void)
* - adopted from "ECC Algorithm for SmartMedia V3.0"
* by Memory Product & Technology, Samsung Electronics Co. (ecc30.pdf)
**********/
-int sm_ECCEncode(const uint8_t * p_buf, uint8_t * p_ecc)
+int sm_ECCEncode(const uint8_t * p_buf, uint8_t * p_ecc)
{
uint32_t i, j;
uint8_t paritr[256], tmp = 0, tmp2 = 0;
@@ -368,13 +368,13 @@ int sm_ECCEncode(const uint8_t * p_buf, uint8_t * p_ecc)
uint8_t* paritr_ptr;
paritr_ptr = paritr;
- for (i = 0; i < 256; ++i, ++paritr_ptr, ++p_buf)
+ for (i = 0; i < 256; ++i, ++paritr_ptr, ++p_buf)
{
paritc ^= *p_buf;
tmp = (*p_buf & 0xf0) >> 4;
tmp2 = *p_buf & 0x0f;
- switch (tmp)
+ switch (tmp)
{
case 0:
case 3:
@@ -416,79 +416,79 @@ int sm_ECCEncode(const uint8_t * p_buf, uint8_t * p_ecc)
parit4_1 = parit7c ^ parit6c ^ parit5c ^ parit4c;
paritr_ptr = paritr;
- for (i = 0; i < 256; ++i, ++paritr_ptr)
+ for (i = 0; i < 256; ++i, ++paritr_ptr)
{
sum ^= *paritr_ptr;
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 2, paritr_ptr += 2)
+ for (i = 0; i < 256; i += 2, paritr_ptr += 2)
{
parit8_2 ^= *paritr_ptr;
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 4, paritr_ptr += 4)
+ for (i = 0; i < 256; i += 4, paritr_ptr += 4)
{
parit16_2 ^= *paritr_ptr;
parit16_2 ^= *(paritr_ptr + 1);
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 8, paritr_ptr += 8)
+ for (i = 0; i < 256; i += 8, paritr_ptr += 8)
{
- for (j = 0; j <= 3; ++j)
+ for (j = 0; j <= 3; ++j)
{
parit32_2 ^= *(paritr_ptr + j);
}
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 16, paritr_ptr += 16)
+ for (i = 0; i < 256; i += 16, paritr_ptr += 16)
{
- for (j = 0; j <= 7; ++j)
+ for (j = 0; j <= 7; ++j)
{
parit64_2 ^= *(paritr_ptr + j);
}
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 32, paritr_ptr += 32)
+ for (i = 0; i < 256; i += 32, paritr_ptr += 32)
{
- for (j = 0; j <= 15; ++j)
+ for (j = 0; j <= 15; ++j)
{
parit128_2 ^= *(paritr_ptr + j);
}
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 64, paritr_ptr += 64)
+ for (i = 0; i < 256; i += 64, paritr_ptr += 64)
{
- for (j = 0; j <= 31; ++j)
+ for (j = 0; j <= 31; ++j)
{
parit256_2 ^= *(paritr_ptr + j);
}
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 128, paritr_ptr += 128)
+ for (i = 0; i < 256; i += 128, paritr_ptr += 128)
{
- for (j = 0; j <= 63; ++j)
+ for (j = 0; j <= 63; ++j)
{
parit512_2 ^= *(paritr_ptr + j);
}
}
paritr_ptr = paritr;
- for (i = 0; i < 256; i += 256, paritr_ptr += 256)
+ for (i = 0; i < 256; i += 256, paritr_ptr += 256)
{
- for (j = 0; j <= 127; ++j)
+ for (j = 0; j <= 127; ++j)
{
parit1024_2 ^= *(paritr_ptr + j);
}
}
- if (sum==0)
+ if (sum==0)
{
parit1024_1 = parit1024_2;
parit512_1 = parit512_2;
@@ -499,7 +499,7 @@ int sm_ECCEncode(const uint8_t * p_buf, uint8_t * p_ecc)
parit16_1 = parit16_2;
parit8_1 = parit8_2;
}
- else
+ else
{
parit1024_1 = parit1024_2 ? 0 : 1;
parit512_1 = parit512_2 ? 0 : 1;