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