Skip to content

Commit

Permalink
sunxi: remove nand lib and nand related operation
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Cubie committed Feb 13, 2012
1 parent 02e15ca commit c668a54
Show file tree
Hide file tree
Showing 50 changed files with 55 additions and 17,655 deletions.
4 changes: 0 additions & 4 deletions Makefile
Expand Up @@ -293,10 +293,6 @@ ifeq ($(SOC),s5pc2xx)
LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
endif

ifeq ($(SOC),sunxi)
LIBS += nand_sunxi/libsunxi-nand.o
endif

LIBS := $(addprefix $(obj),$(sort $(LIBS)))
.PHONY : $(LIBS) $(TIMESTAMP_FILE)

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/cpu/armv7/sunxi/board.c
Expand Up @@ -143,7 +143,7 @@ void s_init(void)

void reset_cpu(ulong addr)
{
sunxi_nand_flush_opts();
//sunxi_nand_flush_opts();
sunxi_reset();
}

Expand Down
4 changes: 3 additions & 1 deletion arch/arm/cpu/armv7/sunxi/sparse.c
Expand Up @@ -116,7 +116,7 @@ int _unsparse(unsigned char *source, u32 offset, u32 partition_size,
printf("sparse: RAW blk=%d bsz=%d: write(offset=0x%x,len=0x%x)\n",
chunk->chunk_sz, header->blk_sz, offset, len);
#endif
r = WRITE(&nand_info[0], offset, &len, source, 0);
//TODOr = WRITE(&nand_info[0], offset, &len, source, 0);
if (r < 0) {
printf("sparse: mmc write failed\n");
return 1;
Expand Down Expand Up @@ -160,13 +160,15 @@ int _unsparse(unsigned char *source, u32 offset, u32 partition_size,
u8 do_unsparse(unsigned char *source, u32 offset, u32 partition_size, char *slot_no)
{
unsigned mmcc = simple_strtoul(slot_no, NULL, 16);
#if 0
#if defined(CONFIG_STORAGE_NAND)
if (_unsparse(source, offset, partition_size, mmcc, sunxi_nand_write_opts))
return 1;
#elif defined(CONFIG_STORAGE_EMMC)
if (_unsparse(source, offset, partition_size, mmcc, mmc_write))
return 1;
#endif
#endif

#if 0
if (_unsparse(source, offset, partition_size, mmcc, mmc_compare))
Expand Down
20 changes: 10 additions & 10 deletions board/allwinner/a10-evb/a10-evb.c
Expand Up @@ -55,14 +55,14 @@ void fastboot_partition_init(void)
int index,part_total;

puts("--------fastboot partitions--------\n");
part_total = sunxi_nand_getpart_num();
//TODO part_total = sunxi_nand_getpart_num();
printf("-total partitions:%d-\n", part_total);
printf("%-12s %-12s %-12s\n", "-name-", "-start-", "-size-");

for(index = 0; index < part_total && index < MBR_MAX_PART_COUNT; index++) {
sunxi_nand_getpart_name(index, &fb_part.name[0]);
fb_part.start = sunxi_nand_getpart_offset(index) * 512;
fb_part.length = sunxi_nand_getpart_size(index) * 512;
//TODO sunxi_nand_getpart_name(index, &fb_part.name[0]);
//TODO fb_part.start = sunxi_nand_getpart_offset(index) * 512;
//TODO fb_part.length = sunxi_nand_getpart_size(index) * 512;
fb_part.flags = 0;
printf("%-12s: %-12x %-12x\n", fb_part.name, fb_part.start, fb_part.length);
fastboot_flash_add_ptn(&fb_part);
Expand All @@ -76,18 +76,18 @@ int check_android_misc() {
loff_t misc_offset = 0, misc_size = 0;
size_t count = sizeof(misc_message);

sunxi_nand_getpart_info_byname("misc", &misc_offset, &misc_size);
//TODO sunxi_nand_getpart_info_byname("misc", &misc_offset, &misc_size);

if(!misc_offset || !misc_size) {
sunxi_nand_getpart_info_byname("MISC", &misc_offset, &misc_size);
//TODO sunxi_nand_getpart_info_byname("MISC", &misc_offset, &misc_size);
if(!misc_offset || !misc_size) {
puts("no misc partition is found\n");
return 0;
}
}

sunxi_nand_read_opts(&nand_info[0], misc_offset, &count,
(u_char *)&misc_message, 0);
//TODO sunxi_nand_read_opts(&nand_info[0], misc_offset, &count,
// (u_char *)&misc_message, 0);

#ifdef DEBUG
printf("misc.command : %s\n", misc_message.command);
Expand All @@ -108,8 +108,8 @@ int check_android_misc() {
puts("Fastboot detected, will enter fastboot\n");
/* clean the misc partition ourself */
memset(&misc_message, 0, sizeof(misc_message));
sunxi_nand_write_opts(&nand_info[0], misc_offset, &count,
(u_char *)&misc_message, 0);
//TODO sunxi_nand_write_opts(&nand_info[0], misc_offset, &count,
// (u_char *)&misc_message, 0);
}

return 0;
Expand Down
1 change: 0 additions & 1 deletion common/Makefile
Expand Up @@ -57,7 +57,6 @@ COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
COBJS-$(CONFIG_ENV_IS_IN_MG_DISK) += env_mgdisk.o
COBJS-$(CONFIG_ENV_IS_IN_MMC) += env_mmc.o
COBJS-$(CONFIG_ENV_IS_IN_NAND) += env_nand.o
COBJS-$(CONFIG_ENV_IS_IN_NAND_SUNXI) += env_nand_sunxi.o
COBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_nvram.o
COBJS-$(CONFIG_ENV_IS_IN_ONENAND) += env_onenand.o
COBJS-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o
Expand Down
67 changes: 0 additions & 67 deletions common/cmd_fat.c
Expand Up @@ -98,70 +98,6 @@ U_BOOT_CMD(
" to address 'addr' from dos filesystem"
);


int do_fat_fsdown (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
long size;
unsigned long offset;
unsigned long count;
char buf [12];
block_dev_desc_t *dev_desc=NULL;
int dev=0;
int part=1;
char *ep;

if (argc < 6) {
printf( "usage: fatdown <interface> <dev[:part]> "
"<addr> <filename> <bytes>\n");
return 1;
}

dev = (int)simple_strtoul(argv[2], &ep, 16);
dev_desc = get_dev(argv[1],dev);
if (dev_desc == NULL) {
puts("\n** Invalid boot device **\n");
return 1;
}
if (*ep) {
if (*ep != ':') {
puts("\n** Invalid boot device, use `dev[:part]' **\n");
return 1;
}
part = (int)simple_strtoul(++ep, NULL, 16);
}
if (fat_register_device(dev_desc,part)!=0) {
printf("\n** Unable to use %s %d:%d for fatload **\n",
argv[1], dev, part);
return 1;
}
offset = simple_strtoul(argv[3], NULL, 16);
count = simple_strtoul(argv[5], NULL, 16);
size = file_fat_write(argv[4], (unsigned char *)offset, count);

if(size<0) {
printf("\n** Unable to write \"%s\" from %s %d:%d **\n",
argv[4], argv[1], dev, part);
return 1;
}

printf("\n%ld bytes write\n", count);

sprintf(buf, "%lX", size);
setenv("filesize", buf);

return 0;
}


U_BOOT_CMD(
fatdown, 6, 0, do_fat_fsdown,
"download data to a dos filesystem",
"<interface> <dev[:part]> <addr> <filename> bytes\n"
" - download data 'filename' to 'dev' on 'interface'\n"
" at address 'addr' to dos filesystem"
);


int do_fat_ls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
char *filename = "/";
Expand Down Expand Up @@ -248,6 +184,3 @@ U_BOOT_CMD(
"<interface> <dev[:part]>\n"
" - print information about filesystem from 'dev' on 'interface'"
);



89 changes: 12 additions & 77 deletions common/cmd_nand.c
Expand Up @@ -166,19 +166,6 @@ static int get_part(const char *partname, int *idx, loff_t *off, loff_t *size)
return ret;

return 0;
#elif defined CONFIG_NAND_SUNXI
int ret;

*idx = 0;
ret = sunxi_nand_getpart_info_byname(partname, off, size);

if(ret) {
printf("Can not find partition \'%s\'\n", partname);
return ret;
}

return 0;

#else
puts("offset is not a number\n");
return -1;
Expand All @@ -187,17 +174,15 @@ static int get_part(const char *partname, int *idx, loff_t *off, loff_t *size)

static int arg_off(const char *arg, int *idx, loff_t *off, loff_t *maxsize)
{

if (!str2off(arg, off)){
if (!str2off(arg, off))
return get_part(arg, idx, off, maxsize);
}

if (*off >= nand_info[*idx].size) {
puts("Offset exceeds device limit\n");
return -1;
}
*maxsize = (unsigned int)(nand_info[*idx].size) - *off;

*maxsize = nand_info[*idx].size - *off;
return 0;
}

Expand Down Expand Up @@ -229,7 +214,6 @@ static int arg_off_size(int argc, char *const argv[], int *idx,

if (*size > maxsize) {
puts("Size exceeds partition or device limit\n");
printf(" size:%lld, max:%lld \n ", *size, maxsize);
return -1;
}

Expand Down Expand Up @@ -405,8 +389,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
int dev = nand_curr_device;
int repeat = flag & CMD_FLAG_REPEAT;



/* at least two arguments please */
if (argc < 2)
goto usage;
Expand All @@ -419,11 +401,7 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
/* Only "dump" is repeatable. */
if (repeat && strcmp(cmd, "dump"))
return 0;
/*
************************************************
*********** info ****************************
************************************************
*/

if (strcmp(cmd, "info") == 0) {

putc('\n');
Expand All @@ -433,11 +411,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
}
return 0;
}
/*
************************************************
*********** device ***************************
************************************************
*/

if (strcmp(cmd, "device") == 0) {
if (argc < 3) {
Expand Down Expand Up @@ -469,15 +442,10 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
*/
if (dev < 0 || dev >= CONFIG_SYS_MAX_NAND_DEVICE ||
!nand_info[dev].name) {
//puts("\nno devices available\n");
//return 1;
puts("\nno devices available\n");
return 1;
}
nand = &nand_info[dev];
/*
************************************************
*********** bad ***************************
************************************************
*/

if (strcmp(cmd, "bad") == 0) {
printf("\nDevice %d bad blocks:\n", dev);
Expand All @@ -486,12 +454,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
printf(" %08llx\n", (unsigned long long)off);
return 0;
}

/*
************************************************
*********** erase && scrub *******************
************************************************
*/

/*
* Syntax is:
Expand Down Expand Up @@ -533,7 +495,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])

printf("\nNAND %s: ", cmd);
/* skip first two or three arguments, look for offset and size */
dev = 0;
if (arg_off_size(argc - o, argv + o, &dev, &off, &size) != 0)
return 1;

Expand Down Expand Up @@ -572,16 +533,11 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
return -1;
}
}
ret = sunxi_nand_erase_opts(nand, &opts);
ret = nand_erase_opts(nand, &opts);
printf("%s\n", ret ? "ERROR" : "OK");

return ret == 0 ? 0 : 1;
}
/*
************************************************
************* dump ***********************
************************************************
*/

if (strncmp(cmd, "dump", 4) == 0) {
if (argc < 3)
Expand All @@ -592,11 +548,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])

return ret == 0 ? 1 : 0;
}
/*
************************************************
************* read && write *********************
************************************************
*/

if (strncmp(cmd, "read", 4) == 0 || strncmp(cmd, "write", 5) == 0) {
size_t rwsize;
Expand All @@ -611,20 +562,19 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
printf("\nNAND %s: ", read ? "read" : "write");
if (arg_off_size(argc - 3, argv + 3, &dev, &off, &size) != 0)
return 1;

nand = &nand_info[dev];
rwsize = size;

s = strchr(cmd, '.');
if (!s || !strcmp(s, ".jffs2") ||
!strcmp(s, ".e") || !strcmp(s, ".i")) {
if (read) {
ret = sunxi_nand_read_opts(nand, off, &rwsize,
if (read)
ret = nand_read_skip_bad(nand, off, &rwsize,
(u_char *)addr);
}
else {
ret = sunxi_nand_write_opts(nand, off, &rwsize,
else
ret = nand_write_skip_bad(nand, off, &rwsize,
(u_char *)addr, 0);
}
#ifdef CONFIG_CMD_NAND_TRIMFFS
} else if (!strcmp(s, ".trimffs")) {
if (read) {
Expand Down Expand Up @@ -666,11 +616,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])

return ret == 0 ? 0 : 1;
}
/*
************************************************
************* markbad *********************
************************************************
*/

if (strcmp(cmd, "markbad") == 0) {
argc -= 2;
Expand Down Expand Up @@ -702,11 +647,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
/* todo */
return 1;
}
/*
************************************************
**************** lock ************************
************************************************
*/

#ifdef CONFIG_CMD_NAND_LOCK_UNLOCK
if (strcmp(cmd, "lock") == 0) {
Expand All @@ -730,11 +670,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
}
return 0;
}
/*
************************************************
**************** unlock ************************
************************************************
*/

if (strcmp(cmd, "unlock") == 0) {
if (arg_off_size(argc - 2, argv + 2, &dev, &off, &size) < 0)
Expand Down

0 comments on commit c668a54

Please sign in to comment.