Hello,
> Looks like you had the internal SRAM mapped to 0x0 at that point. Check the > processors user's manual for information about its internal memories and > mappings. I had a closer look at the at91sam9260 datasheet. On my board the code at the beginning of the NAND flash is loaded (thus copied) to the internal SRAM at 0x300000. Once the code has been loaded, the internal SRAM gets remapped to address 0x0 and the CPU core can start to boot. For this reason I was able to replace the code at this address region (SRAM instead of NAND flash) and it's clear now why the changes to this region were only temporary. Therefore, to be able to actually program the board, I would need write access to NAND memory. The problem is, like you already said, that NAND isn't memory mapped: > NAND flash has completely different characteristics, e.g. it isn't memory > mapped. So, is there a possibility to write to the NAND flash on my board ? According to the datasheet, "the NAND flash logic is driven by the Static Memory Controller on the NCS3 address space. ... Access to an external NANDFlash device is then made by accessing the address space reserved to NCS3 (i.e., between 0x4000 0000 and 0x4FFF FFFF)." Thus, in my understanding, if the at91sam9260 is initialized so that the according output pins are used for NAND flash, the whole NAND flash memory should be memory mapped by the static memory controller. For this reason all I would have to do is to write to this memory region provided that the at91sam9260 is initialized with NAND flash support. After reading through some examples, I found out that I can actually create scripts which are executed after reset. For this reason, I could initialize the memory controller so that it memory maps the NAND flash. After that I could write to NAND, true ? Besides openocd, there is an atmel programming tool that can do flash programming with the SMA-BA boot agent residing in the cores ROM. However, the tool only runs on windows which would be kind of cumbersome for me since my whole development environment runs under linux. Do you know of any other (linux) solution I could use to program the NAND flash ? Like I said, the at91sam9260 has boot code in ROM (SAM-BA) that can be used to write to memory regions. But since SAM-BA doesn't know that there's NAND flash attached, I'm pretty sure that it doesn't initialize the memory controller. According to the datasheet, one can upload files over the serial/USB port using the xmodem protocol. But if the memory controller is not initialized to support NAND flash, that won't be of much help either. How do you guys program your ARM based boards ? They most possibly also have their code in NAND flash, haven't they ? stefan _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development