[U-Boot] Virtex 4 with XMD

Frank Lombardo fastfrank at gmail.com
Thu Jan 31 08:40:55 CET 2013


I am trying to get u-boot to run on a custom board with a Virtex 4 on it.
 I have started with the latest code from the u-boot-ppc4xx.git repository.
 I have been trying to get a simple (just a serial port) configuration of
u-boot to run without success.  The board has the following memory map:

Address Map for Processor ppc405_0
  (0b0100000000-0b0111111111) ppc405_0
  (0000000000-0x03ffffff) SDR_SDRAM_CUSTOM    ppc405_0_dplb1
  (0000000000-0x03ffffff) SDR_SDRAM_CUSTOM    ppc405_0_iplb1
  (0x80800000-0x8080ffff) xps_epc_0    plb
  (0x81000000-0x8100ffff) xps_ethernetlite_0    plb
  (0x81010000-0x8101ffff) xps_ethernetlite_1    plb
  (0x81020000-0x8102ffff) xps_ethernetlite_2    plb
  (0x81800000-0x8180ffff) xps_intc_0    plb
  (0x83600000-0x8360ffff) SysACE_CompactFlash    plb
  (0x84000000-0x8400ffff) xps_uart_console    plb
  (0x84010000-0x8401ffff) xps_uart_1    plb
  (0x84020000-0x8402ffff) xps_uart_2    plb
  (0x84030000-0x8403ffff) xps_uart_3    plb
  (0x84040000-0x8404ffff) xps_uart_4    plb
  (0x84050000-0x8405ffff) xps_uart_5    plb
  (0x84060000-0x8406ffff) xps_uart_6    plb
  (0x85e00000-0x85e0ffff) plbv46_pci_0    plb
  (0x90000000-0x9fffffff) plbv46_pci_0    plb
  (0xf0000000-0xf000ffff) plbv46_pci_0    plb
  (0xffff8000-0xffffffff) xps_bram_if_cntlr_1    plb


I have based my board's code on the ppc405-generic code.  My board specific
configs header file contains only a few items
#include "../board/xilinx/ppc405-custom/xparameters.h"

#define XPAR_PLB_CLOCK_FREQ_HZ        (XPAR_CPU_PPC405_CORE_CLOCK_FREQ_HZ)
#define XPAR_CORE_CLOCK_FREQ_HZ        (XPAR_CPU_PPC405_CORE_CLOCK_FREQ_HZ)

/* sdram */
#define CONFIG_SYS_SDRAM_SIZE_MB    64
#define XPAR_DDR2_SDRAM_MEM_BASEADDR
(XPAR_SDR_SDRAM_CUSTOM_MPMC_BASEADDR)

/* environment */
#define CONFIG_ENV_SIZE            0x1000

/*Misc*/
#define CONFIG_SYS_PROMPT    "xlx-ppc405:/# " /* Monitor Command Prompt */
#define CONFIG_PREBOOT        "echo U-Boot is up and runnining;"

#include <configs/xilinx-ppc405.h>

In boards.cfg I set the following:

SYS_TEXT_BASE=0x00800000,RESET_VECTOR_ADDRESS=0x00900000

when I run in XMD, noting seems to happen, and when I stop the processor,
the program counter seems to be at an odd address.  See the output below:

XMD% dow u-boot
System Reset .... DONE
Downloading Program -- u-boot
    section, .text: 0x00800000-0x008165df
    section, .resetvec: 0x00900000-0x00900003
    section, .rodata: 0x008165e0-0x0081b810
    section, .reloc: 0x0081b900-0x0081cf4b
    section, .data: 0x0081cf4c-0x0081e17b
    section, .u_boot_list: 0x0081e17c-0x0081e7b7
    section, .bss: 0x00900004-0x00902333
Setting PC with Program Start Address 0x00800000

XMD% run
Info:Processor started. Type "stop" to stop processor

RUNNING> XMD% stop
XMD% Info:User Interrupt, Processor Stopped at 0x7c230700

I have also observed that single stepping gets me to that odd address
immediately.  See the output below:

XMD% dow u-boot
System Reset .... DONE
Downloading Program -- u-boot
    section, .text: 0x00800000-0x008165df
    section, .resetvec: 0x00900000-0x00900003
    section, .rodata: 0x008165e0-0x0081b810
    section, .reloc: 0x0081b900-0x0081cf4b
    section, .data: 0x0081cf4c-0x0081e17b
    section, .u_boot_list: 0x0081e17c-0x0081e7b7
    section, .bss: 0x00900004-0x00902333
Setting PC with Program Start Address 0x00800000

XMD% stp
00800000:

XMD% stp
7c230700:

XMD%


The main thing that worries me with this board is that there is no flash
memory on the board.  I am hoping that won't prevent me from executing
u-boot with XMD.

So, that leaves me with the following questions:
1) Is the lack of flash memory causing THIS problem?
2) Am I missing some config items?
3) Does anybody have any advice on how I can debug this?

Thanks,
Frank


More information about the U-Boot mailing list