[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[microblaze-uclinux] KErnel Boot Error on Spartan IIE LC 600
Hi John,
I've make progress in my project but the kernel stay hang after the famous
Calibrating delay loop...
I've a quick look in email archive and found that some of us already face that
problem. Your recommendation at that ttime was that external memory should fit
he real size of the one embed on the board (my own as 32MB SDRAM), and to
check interrupt.
I've check all that point unsucessfully.
I'm afraid there is a problem with cach memory because I resize it to 8k (16k
on your original design uclinux_auto_6_30_b)
The complete bootlog sequence is: (please scroll down due to blank line!!!)
------------------------------------------------------------------------------
Linux version 2.4.31-uc0 (alayrac@debian-labo) (gcc version 2.95.3-4 Xilinx EDK
6.3 Build EDK_Gmm.12.2) #10 jeu jui 28 18:48:51 CEST
2005
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
CPU: MICROBLAZE
Kernel command line: º
€
Console: xmbserial on UARTLite
Calibrating delay loop...
-------------------------------------------------------------------------------
As you can see there is a strange sequence after Kernel Command Line.
I include MHS and MSS files from my design in case you can identify any
mistake.
I'm out of the office the next four weeks so my request is not very urgent.
Thank you in advance for your help
Regards
Christophe
# ##############################################################################
# Target Board: Memec Design Virtex-2 1000 Development Board
# with P160 Comm Module
# Family: virtex2
# Device: XCV21000
# Package:
# Speed Grade: -6
# Processor: Microblaze
# Debug interface: On-Chip HW Debug Module
# On Chip Memory : 16 KB
# Total Off Chip Memory : 32 MB
# - SDRAM_8Mx32 = 32 MB
# ##############################################################################
# Parameters
PARAMETER VERSION = 2.1.0
PORT ext_clk = ext_clk, DIR = IN
PORT ddr_clk_fb = ddr_clk_fb, DIR = IN
PORT sys_rst = sys_rst, DIR = IN
PORT console_uart_rx = console_uart_rx, DIR = IN
PORT console_uart_tx = console_uart_tx, DIR = OUT
PORT sram_cen = sram_cen, VEC = [0:1], DIR = OUT
PORT sram_addr = sram_addr, VEC = [10:29], DIR = OUT
PORT sram_ben = sram_ben, VEC = [0:3], DIR = OUT
PORT sram_data = sram_data, VEC = [0:31], DIR = INOUT
PORT sram_oen = sram_oen, DIR = OUT
PORT sram_wen = sram_wen, DIR = OUT
PORT sram_rst = sram_rpn, DIR = OUT
PORT gpio = gpio, VEC = [0:23], DIR = INOUT
PORT SDRAM_DQ = SDRAM_DQ, VEC = [0:31], DIR = INOUT
PORT SDRAM_Addr = SDRAM_Addr, VEC = [0:11], DIR = OUT
PORT SDRAM_DQM = SDRAM_DQM, VEC = [0:3], DIR = OUT
PORT SDRAM_WEn = SDRAM_WEn, DIR = OUT
PORT SDRAM_CKE = SDRAM_CKE, DIR = OUT
PORT SDRAM_CSn = SDRAM_CSn, DIR = OUT
PORT SDRAM_CASn = SDRAM_CASn, DIR = OUT
PORT SDRAM_RASn = SDRAM_RASn, DIR = OUT
PORT SDRAM_Clk = SDRAM_Clk, DIR = OUT
PORT SDRAM_BankAddr = SDRAM_BankAddr, VEC = [0:1], DIR = OUT
PORT Ethernet_MAC_PHY_tx_er = Ethernet_MAC_PHY_tx_er, DIR = output
PORT Ethernet_MAC_PHY_tx_clk = Ethernet_MAC_PHY_tx_clk, DIR = input
PORT Ethernet_MAC_PHY_rx_clk = Ethernet_MAC_PHY_rx_clk, DIR = input
PORT Ethernet_MAC_PHY_crs = Ethernet_MAC_PHY_crs, DIR = input
PORT Ethernet_MAC_PHY_dv = Ethernet_MAC_PHY_dv, DIR = input
PORT Ethernet_MAC_PHY_col = Ethernet_MAC_PHY_col, DIR = input
PORT Ethernet_MAC_PHY_rx_er = Ethernet_MAC_PHY_rx_er, DIR = input
PORT Ethernet_MAC_PHY_tx_en = Ethernet_MAC_PHY_tx_en, DIR = output
PORT Ethernet_MAC_PHY_Mii_clk = Ethernet_MAC_PHY_Mii_clk, DIR = inout
PORT Ethernet_MAC_PHY_rst_n = Ethernet_MAC_PHY_rst_n, DIR = output
PORT Ethernet_MAC_PHY_Mii_data = Ethernet_MAC_PHY_Mii_data, DIR = inout
PORT Ethernet_MAC_PHY_rx_data = Ethernet_MAC_PHY_rx_data, VEC = [3:0], DIR = input
PORT Ethernet_MAC_PHY_tx_data = Ethernet_MAC_PHY_tx_data, VEC = [3:0], DIR = output
# Sub Components
BEGIN ibufg_clkdll
PARAMETER INSTANCE = clk100_to_66_6
PORT sys_clk_raw = ext_clk
PORT sys_clk_dll = sys_clk
PORT rst_dll = net_vcc
PORT locked_dll = locked_dll
END
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER HW_VER = 3.00.a
PARAMETER C_USE_BARREL = 1
PARAMETER C_USE_DIV = 1
PARAMETER C_USE_MSR_INSTR = 1
PARAMETER C_DEBUG_ENABLED = 1
PARAMETER C_NUMBER_OF_PC_BRK = 2
PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 1
PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 1
PARAMETER C_USE_ICACHE = 1
PARAMETER C_ICACHE_BASEADDR = 0x84000000
PARAMETER C_ICACHE_HIGHADDR = 0x85FFFFFF
PARAMETER C_CACHE_BYTE_SIZE = 8192
PARAMETER C_ADDR_TAG_BITS = 11
PARAMETER C_USE_DCACHE = 1
PARAMETER C_DCACHE_BASEADDR = 0x84000000
PARAMETER C_DCACHE_HIGHADDR = 0x85FFFFFF
PARAMETER C_DCACHE_BYTE_SIZE = 8192
PARAMETER C_DCACHE_ADDR_TAG = 11
PARAMETER C_FSL_LINKS = 1
BUS_INTERFACE SFSL0 = download_link
BUS_INTERFACE DLMB = dlmb
BUS_INTERFACE ILMB = ilmb
BUS_INTERFACE DOPB = mb_opb
BUS_INTERFACE IOPB = mb_opb
PORT CLK = sys_clk
PORT INTERRUPT = interrupt
END
BEGIN opb_mdm
PARAMETER INSTANCE = debug_module
PARAMETER HW_VER = 2.00.a
PARAMETER C_MB_DBG_PORTS = 1
PARAMETER C_USE_UART = 0
PARAMETER C_UART_WIDTH = 8
PARAMETER C_BASEADDR = 0xFFFFC000
PARAMETER C_HIGHADDR = 0xFFFFC0FF
PARAMETER C_WRITE_FSL_PORTS = 1
BUS_INTERFACE MFSL0 = download_link
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk
END
BEGIN fsl_v20
PARAMETER INSTANCE = download_link
PARAMETER HW_VER = 2.00.a
PARAMETER C_EXT_RESET_HIGH = 0
PORT SYS_Rst = sys_rst
PORT FSL_Clk = sys_clk
END
BEGIN opb_emc
PARAMETER INSTANCE = sram_flash
PARAMETER HW_VER = 1.10.b
PARAMETER C_OPB_CLK_PERIOD_PS = 15000
PARAMETER C_NUM_BANKS_MEM = 2
PARAMETER C_MAX_MEM_WIDTH = 32
PARAMETER C_MEM0_WIDTH = 32
PARAMETER C_MEM1_WIDTH = 32
PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 0
PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_1 = 0
PARAMETER C_READ_ADDR_TO_OUT_SLOW_PS_0 = 150000
PARAMETER C_WRITE_ADDR_TO_OUT_SLOW_PS_0 = 55000
PARAMETER C_WRITE_MIN_PULSE_WIDTH_PS_0 = 70000
PARAMETER C_READ_ADDR_TO_OUT_FAST_PS_0 = 150000
PARAMETER C_WRITE_ADDR_TO_OUT_FAST_PS_0 = 55000
PARAMETER C_READ_RECOVERY_BEFORE_WRITE_PS_0 = 15000
PARAMETER C_WRITE_RECOVERY_BEFORE_READ_PS_0 = 35000
PARAMETER C_READ_ADDR_TO_OUT_SLOW_PS_1 = 150000
PARAMETER C_WRITE_ADDR_TO_OUT_SLOW_PS_1 = 55000
PARAMETER C_WRITE_MIN_PULSE_WIDTH_PS_1 = 70000
PARAMETER C_READ_ADDR_TO_OUT_FAST_PS_1 = 150000
PARAMETER C_WRITE_ADDR_TO_OUT_FAST_PS_1 = 55000
PARAMETER C_READ_RECOVERY_BEFORE_WRITE_PS_1 = 15000
PARAMETER C_WRITE_RECOVERY_BEFORE_READ_PS_1 = 35000
PARAMETER C_BASEADDR = 0xFFFF0000
PARAMETER C_HIGHADDR = 0xFFFF01FF
PARAMETER C_MEM0_BASEADDR = 0xFFE00000
PARAMETER C_MEM0_HIGHADDR = 0xFFEFFFFF
PARAMETER C_MEM1_BASEADDR = 0xFF000000
PARAMETER C_MEM1_HIGHADDR = 0xFF7FFFFF
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk
PORT Mem_CEN = sram_cen
PORT Mem_A = sram_addr_full
PORT Mem_BEN = sram_ben
PORT Mem_DQ = sram_data
PORT Mem_OEN = sram_oen_full
PORT Mem_WEN = sram_wen
PORT Mem_RPN = sram_rpn
END
BEGIN util_reduced_logic
PARAMETER INSTANCE = oe_adj
PARAMETER HW_VER = 1.00.a
PARAMETER C_SIZE = 2
PARAMETER C_OPERATION = and
PORT Op1 = sram_oen_full
PORT Res = sram_oen
END
BEGIN util_bus_split
PARAMETER INSTANCE = addr_adj
PARAMETER HW_VER = 1.00.a
PARAMETER C_SIZE_IN = 32
PARAMETER C_LEFT_POS = 10
PARAMETER C_SPLIT = 30
PORT Sig = sram_addr_full
PORT Out1 = sram_addr
END
BEGIN opb_uartlite
PARAMETER INSTANCE = console_uart
PARAMETER HW_VER = 1.00.b
PARAMETER C_BAUDRATE = 57600
PARAMETER C_DATA_BITS = 8
PARAMETER C_USE_PARITY = 0
PARAMETER C_ODD_PARITY = 0
PARAMETER C_CLK_FREQ = 66_666_667
PARAMETER C_BASEADDR = 0xFFFF2000
PARAMETER C_HIGHADDR = 0xFFFF20FF
BUS_INTERFACE SOPB = mb_opb
PORT Interrupt = console_uart_interrupt
PORT OPB_Clk = sys_clk
PORT RX = console_uart_rx
PORT TX = console_uart_tx
END
BEGIN opb_intc
PARAMETER INSTANCE = system_intc
PARAMETER HW_VER = 1.00.c
PARAMETER C_BASEADDR = 0xffff3000
PARAMETER C_HIGHADDR = 0xffff301f
BUS_INTERFACE SOPB = mb_opb
PORT Irq = interrupt
PORT OPB_Clk = sys_clk
PORT Intr = Ethernet_MAC_IP2INTC_Irpt & console_uart_interrupt & timer_interrupt
END
BEGIN opb_timer
PARAMETER INSTANCE = system_timer
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0xffff1000
PARAMETER C_HIGHADDR = 0xffff10ff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk
PORT Interrupt = timer_interrupt
END
BEGIN opb_gpio
PARAMETER INSTANCE = system_gpio
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0xffff5000
PARAMETER C_HIGHADDR = 0xffff50ff
PARAMETER C_GPIO_WIDTH = 24
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_IO = gpio
PORT OPB_Clk = sys_clk
END
BEGIN opb_ethernet
PARAMETER INSTANCE = ethernet
PARAMETER HW_VER = 1.00.m
PARAMETER C_DMA_INTR_COALESCE = 1
PARAMETER C_OPB_CLK_PERIOD_PS = 15000
PARAMETER C_BASEADDR = 0xC0000000
PARAMETER C_HIGHADDR = 0xC0003FFF
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk
PORT IP2INTC_Irpt = Ethernet_MAC_IP2INTC_Irpt
PORT PHY_tx_er = Ethernet_MAC_PHY_tx_er
PORT PHY_tx_clk = Ethernet_MAC_PHY_tx_clk
PORT PHY_rx_clk = Ethernet_MAC_PHY_rx_clk
PORT PHY_crs = Ethernet_MAC_PHY_crs
PORT PHY_dv = Ethernet_MAC_PHY_dv
PORT PHY_col = Ethernet_MAC_PHY_col
PORT PHY_rx_er = Ethernet_MAC_PHY_rx_er
PORT PHY_tx_en = Ethernet_MAC_PHY_tx_en
PORT PHY_Mii_clk = Ethernet_MAC_PHY_Mii_clk
PORT PHY_rst_n = Ethernet_MAC_PHY_rst_n
PORT PHY_Mii_data = Ethernet_MAC_PHY_Mii_data
PORT PHY_rx_data = Ethernet_MAC_PHY_rx_data
PORT PHY_tx_data = Ethernet_MAC_PHY_tx_data
END
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = dlmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00000fff
BUS_INTERFACE SLMB = dlmb
BUS_INTERFACE BRAM_PORT = conn_0
END
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = ilmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00000fff
BUS_INTERFACE SLMB = ilmb
BUS_INTERFACE BRAM_PORT = conn_1
END
BEGIN bram_block
PARAMETER INSTANCE = bram
PARAMETER HW_VER = 1.00.a
PARAMETER C_MEMSIZE = 8192
BUS_INTERFACE PORTA = conn_0
BUS_INTERFACE PORTB = conn_1
END
BEGIN opb_v20
PARAMETER INSTANCE = mb_opb
PARAMETER HW_VER = 1.10.b
PARAMETER C_EXT_RESET_HIGH = 0
PORT OPB_Clk = sys_clk
PORT SYS_Rst = sys_rst
END
BEGIN lmb_v10
PARAMETER INSTANCE = ilmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 0
PORT LMB_Clk = sys_clk
PORT SYS_Rst = sys_rst
END
BEGIN lmb_v10
PARAMETER INSTANCE = dlmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 0
PORT LMB_Clk = sys_clk
PORT SYS_Rst = sys_rst
END
BEGIN opb_sdram
PARAMETER INSTANCE = ddr_controller
PARAMETER HW_VER = 1.00.d
PARAMETER C_INCLUDE_HIGHSPEED_PIPE = 1
PARAMETER C_OPB_CLK_PERIOD_PS = 15000
PARAMETER C_SDRAM_TMRD = 2
PARAMETER C_SDRAM_TCCD = 1
PARAMETER C_SDRAM_TRAS = 48000
PARAMETER C_SDRAM_TRC = 70000
PARAMETER C_SDRAM_TRFC = 75000
PARAMETER C_SDRAM_TRCD = 19000
PARAMETER C_SDRAM_TRRD = 16000
PARAMETER C_SDRAM_TRP = 19000
PARAMETER C_SDRAM_TREF = 64
PARAMETER C_SDRAM_CAS_LAT = 2
PARAMETER C_SDRAM_COL_AWIDTH = 9
PARAMETER C_SDRAM_BANK_AWIDTH = 2
PARAMETER C_SDRAM_AWIDTH = 12
PARAMETER C_SDRAM_DWIDTH = 32
PARAMETER C_BASEADDR = 0x80000000
PARAMETER C_HIGHADDR = 0x81ffffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk
PORT SDRAM_CLK_in = sys_clk
PORT SDRAM_DQ = SDRAM_DQ
PORT SDRAM_Addr = SDRAM_Addr
PORT SDRAM_DQM = SDRAM_DQM
PORT SDRAM_WEn = SDRAM_WEn
PORT SDRAM_CKE = SDRAM_CKE
PORT SDRAM_CSn = SDRAM_CSn
PORT SDRAM_CASn = SDRAM_CASn
PORT SDRAM_RASn = SDRAM_RASn
PORT SDRAM_Clk = SDRAM_Clk
PORT SDRAM_BankAddr = SDRAM_BankAddr
END
PARAMETER VERSION = 2.2.0
BEGIN OS
PARAMETER OS_NAME = uclinux
PARAMETER OS_VER = 1.00.a
PARAMETER PROC_INSTANCE = microblaze_0
PARAMETER MAIN_MEMORY = ddr_controller
PARAMETER FLASH_MEMORY = sram_flash
PARAMETER FLASH_MEMORY_BANK = 1
PARAMETER LMB_MEMORY = ilmb_cntlr
# handlers for the bootloader, not used in uclinux kernel
PARAMETER STDOUT = console_uart
PARAMETER STDIN = console_uart
END
# where to copy resulting auto-config.in file
# PARAMETER TARGET_DIR = /mnt/home2/jwilliam/dist-test/uClinux-dist/linux-2.4.x/arch/microblaze/platform/uclinux-auto
BEGIN PROCESSOR
PARAMETER DRIVER_NAME = cpu
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = microblaze_0
PARAMETER ARCHIVER = mb-ar
PARAMETER COMPILER = mb-gcc
PARAMETER XMDSTUB_PERIPHERAL = debug_module
# 66MHz
PARAMETER CORE_CLOCK_FREQ_HZ = 66666667
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = debug_module
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = dlmb_cntlr
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = ilmb_cntlr
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = mb_opb
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = intc
PARAMETER DRIVER_VER = 1.00.c
PARAMETER HW_INSTANCE = system_intc
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = tmrctr
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = system_timer
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = console_uart
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = system_gpio
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = ddr_controller
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = emac
PARAMETER DRIVER_VER = 1.00.e
PARAMETER HW_INSTANCE = ethernet
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = emc
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = sram_flash
PARAMETER LEVEL = 0
END