[U-Boot] [PATCH v2 7/7] am335x_evm: Add support to boot from NOR.

Mark Jackson
2013-06-17T18:38:56Z

On 17/06/13 18:04, Kipisz, Steven wrote:

<snip>

>> I'll look at that thanks.
>>
>> But I've taken a slightly different approach, and added the following to the
>> start of s_init() ...
>>
>>
>>
>> void s_init(void)
>> {
>> unsigned short *p = (unsigned short*)0x08000000;
>> while (1)
>> {
>> int i;
>> for (i = 0; i < (1 * 1024); i++)
>> {
>> unsigned short d = p[i];
>> d++;
>> *p = d;
>> }
>> }
>> ...
>>
>> AFAICT, that should just spin on reading/writing the NOR device, but I still get
>> only an initial 350us burst on the CS0 line, and then nothing.
>>
>> So I can only assume that the boot code isn't getting as far as
>> s_init() at all !!
>>
>> In start.S and low_levelinit.c, there are various uses of:-
>>
>> #ifdef CONFIG_SPL_BUILD
>>
>> Do any of these also need referencing with a CONFIG_NOR_BOOT ?
>>
>> Mark J.
>
> Do you have a u-boot.lds in board/ti/am335x? That should put s_init() earlier in the boot. Also, include/configs/am335x_evm.h should have
> /* Custom script for NOR */
> #define CONFIG_SYS_LDSCRIPT "board/ti/am335x/u-boot.lds"

Yes ... I have both u-boot.lds in my board directory, and the reference
to it in the config.

#define CONFIG_SYS_LDSCRIPT "board/newflow/nanobone/u-boot.lds"

> Before using JTAG, take a look in System.map where s_init is located. For a multiplex NOR it should be in the first 64K of address space.

That all seems in order ...

08000000 T __image_copy_start
08000000 T _start
08000020 t _undefined_instruction
08000024 t _software_interrupt
08000028 t _prefetch_abort
0800002c t _data_abort
08000030 t _not_used
08000034 t _irq
08000038 t _fiq
0800003c t _pad
08000040 T _TEXT_BASE
08000040 T _end_vect
08000044 T _bss_start_ofs
08000048 T _bss_end_ofs
0800004c T _end_ofs
08000050 T IRQ_STACK_START_IN
08000054 t reset
08000094 T c_runtime_cpu_setup
080000b0 T cpu_init_cp15
080000e8 T cpu_init_crit
08000100 t undefined_instruction
08000160 t software_interrupt
080001c0 t prefetch_abort
08000220 t data_abort
08000280 t not_used
080002e0 t irq
08000340 t fiq
080003a0 T enable_board_pin_mux
08000444 t cpsw_control
08000448 T s_init <<<<<<<<<<<<<<<<<<<<<<<<<
08000464 t gpmc_mux
08000568 T board_init
080005d8 T board_late_init
0800060c T board_eth_init
0800076c T enable_gpmc_cs_config
080007e0 T gpmc_init
...