weekly report
Sean McNeil
sean at mcneil.com
Sun Jul 20 18:21:09 CEST 2008
Andy Green wrote:
> Somebody in the thread at some point said:
> | this week i find this file serial.c under uboot/cpu/arm920t/s3c24x0/
> | i try to use the serial console debug, maybe this file can help,
> | i am dig into this file.
> |
> | i also have some question
> | 1. when i use "nand write.e 0x32000000 u-boot 0x1000"
> | the nand reply
> | "nand write:device 0 offset 0x0 size 0x1000
> | write data at 0x800 100% <--------------i don't understand here. the
> | uboot is at the begin of NAND flash, it's should be at 0x0, why
> | here is 0x800?
> | 4096 bytes written ok"
>
> I guess it overwrites this line each 2KByte block it writes, and it did
> say 0x0 there briefly, the last block start is what you see left there.
>
> | when i use
> | "nand_read_ll(buf,0x800,siaeof(buf))"
> | then this function never go into "if"[1] like before,
> | but this "for"[2] also not stop. so may be i use serial console debug,
> | can find why
> |
> | for (i=start_addr; i < (start_addr + size);) { <---------[2]
> | if (i % NAND_BLOCK_SIZE == 0) { <--------------[1]
> | if (is_bad_block(i) ||
> | is_bad_block(i + NAND_PAGE_SIZE)) {
> | orange_on(1);
> | i += NAND_BLOCK_SIZE;
> | size += NAND_BLOCK_SIZE;
> | bad_block_count++;
> | if(bad_block_count==4){
> | return -1;
> | }
> | continue;
> | }
> | }
> |
> | blue_on(1);
> | j = nand_read_page_ll(buf, i);
> | i +=j;
> | }
>
> if j that came back from nand_read_page_ll() isn't 0x800, it can spin
> forever. Definitely getting serial console working will allow you to
> "see in the dark" and you can solve it.
>
> -Andy
Don't you have the JTAG debugger? I would think this a must when doing
startup code.
More information about the openmoko-kernel
mailing list