[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] Kernel freezes at "Calibrating delay loop..."



Hi,

currently I'm trying to make a MB design work on a Suzaku SZ030 [1]
module. My uClinux image freezes after it has displayed the message
"Calibrating delay loop...".
Google told me that I probably have a problem with my timer. I briefly
checked the source codes and temporarily removed the bogoMIPS
calculation in init/main.c. This kernel image now freezes at "Setting up
interface lo:"

Any suggestions how to fix that problem? I think I will dive deeper into
the kernel code tomorrow... add some debugging output and try to find
the exact point where it freezes. But I would appreciate, if anybody has
a better idea ;)

I'm working with ISE/EDK 8.2i (all patches applied).
This is my bootlog:

> BBoot v2.1 (microblaze)
> Press 'z' or 'Z' for BBoot Menu.
> Hermit-At v1.1.3 (suzaku/microblaze) compiled at 13:49:17, Aug 15 2006
> hermit> b
>
> Copying  kernel............................done.
> Linux version 2.4.32-uc0 (atmark@atde) (gcc version 3.4.1 ( Xilinx EDK 8.1 Build
>  EDK_I.17 090206 )) #2 2006ǯ 10·î 19Æü ÌÚÍËÆü 11:32:49 JST
> On node 0 totalpages: 4096
> zone(0): 4096 pages.
> zone(1): 0 pages.
> zone(2): 0 pages.
> CPU: MICROBLAZE
> Kernel command line:
> Console: xmbserial on UARTLite
> Calibrating delay loop...

Thanks in advance
Cheers
/Chris


[1] http://suzaku-en.atmark-techno.com/series/suzaku-s
 PARAMETER VERSION = 2.2.0


BEGIN OS
 PARAMETER OS_NAME = standalone
 PARAMETER OS_VER = 1.00.a
 PARAMETER PROC_INSTANCE = microblaze_i
 PARAMETER stdout = console_uart
 PARAMETER stdin = console_uart
END


BEGIN PROCESSOR
 PARAMETER DRIVER_NAME = cpu
 PARAMETER DRIVER_VER = 1.01.a
 PARAMETER HW_INSTANCE = microblaze_i
END


BEGIN DRIVER
 PARAMETER DRIVER_NAME = uartlite
 PARAMETER DRIVER_VER = 1.01.a
 PARAMETER HW_INSTANCE = console_uart
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = generic
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = d_lmb_bram_if_cntlr
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = generic
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = d_opb_v20
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = generic
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = i_lmb_bram_if_cntlr
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = generic
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = sdram_controller
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = generic
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = system_memcon
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = tmrctr
 PARAMETER DRIVER_VER = 1.00.b
 PARAMETER HW_INSTANCE = system_timer
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = gpio
 PARAMETER DRIVER_VER = 2.01.a
 PARAMETER HW_INSTANCE = opb_gpio_0
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = gpio
 PARAMETER DRIVER_VER = 2.01.a
 PARAMETER HW_INSTANCE = led_gpio
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = intc
 PARAMETER DRIVER_VER = 1.00.c
 PARAMETER HW_INSTANCE = system_intc
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = uartlite
 PARAMETER DRIVER_VER = 1.01.a
 PARAMETER HW_INSTANCE = extension_uart
END



 PARAMETER VERSION = 2.1.0


 PORT SYS_RST_IN = SYS_RST_IN, DIR = I
 PORT SYS_CLK_IN = SYS_CLK_IN, DIR = I, SIGIS = CLK, CLK_FREQ = 3.6864
 PORT SYS_CLK_OUT = SYS_CLK, DIR = O
 PORT RAM_CLK = RAM_CLK, DIR = I
 PORT LA = LA, VEC = [0:22], DIR = O
 PORT LD = LD, VEC = [0:15], DIR = IO
 PORT RAM_DQM = SDRAM_DQM, VEC = [0:1], DIR = O
 PORT RAM_BS = SDRAM_BS, VEC = [0:1], DIR = O
 PORT RAM_CSn = SDRAM_CSn, DIR = O
 PORT RAM_RASn = SDRAM_RASn, DIR = O
 PORT RAM_CASn = SDRAM_CASn, DIR = O
 PORT RAM_WEn = SDRAM_WEn, DIR = O
 PORT RAM_CKE = SDRAM_CKE, DIR = O
 PORT FLASH_CEn = FLASH_CEn, DIR = O
 PORT FLASH_OEn = FLASH_OEn, DIR = O
 PORT FLASH_WEn = FLASH_WEn, DIR = O
 PORT FLASH_BYTEn = FLASH_BYTEn, DIR = O
 PORT FLASH_RnB = FLASH_RnB, DIR = I
 PORT MAC_AEN = MAC_AEN, DIR = O
 PORT MAC_WRn = MAC_WRn, DIR = O
 PORT MAC_RDn = MAC_RDn, DIR = O
 PORT MAC_INTR = mac_interrupt, DIR = I, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH
 PORT MAC_BEn = MAC_BEn, DIR = O, VEC = [0:1]
 PORT MAC_ARDY = MAC_ARDY, DIR = I
 PORT MAC_ADSn = MAC_ADSn, DIR = O
 PORT LEDn = LEDn, DIR = O
 PORT CNSL_RX = CNSL_RX, DIR = I
 PORT CNSL_TX = CNSL_TX, DIR = O
 PORT BOOTMODE = BOOTMODE, DIR = I
 PORT BUS_REL = BUS_REL, DIR = I
 PORT BUS_REQ = BUS_REQ, DIR = O
 PORT RESERVE_COLLECT = RESERVE_COLLECT, DIR = O
 PORT FPGA_RESET_EN = FPGA_RESET_EN, DIR = IO
 PORT microblaze_i_FSL0_S_CLK_pin = microblaze_i_FSL1_S_CLK, DIR = O, SIGIS = CLK
 PORT microblaze_i_FSL0_S_READ_pin = microblaze_i_FSL1_S_READ, DIR = O
 PORT microblaze_i_FSL0_S_DATA_pin = microblaze_i_FSL1_S_DATA, DIR = I, VEC = [0:31]
 PORT microblaze_i_FSL0_S_EXISTS_pin = microblaze_i_FSL1_S_EXISTS, DIR = I
 PORT microblaze_i_FSL0_M_CLK_pin = microblaze_i_FSL1_M_CLK, DIR = O, SIGIS = CLK 
 PORT microblaze_i_FSL0_M_WRITE_pin = microblaze_i_FSL1_M_WRITE, DIR = O
 PORT microblaze_i_FSL0_M_DATA_pin = microblaze_i_FSL1_M_DATA, DIR = O, VEC = [0:31]
 PORT microblaze_i_FSL0_M_FULL_pin = microblaze_i_FSL1_M_FULL, DIR = I
 PORT EXT_RX = EXT_RX, DIR = I
 PORT EXT_TX = EXT_TX, DIR = O


BEGIN opb_timer
 PARAMETER INSTANCE = system_timer
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0xFFFF1000
 PARAMETER C_HIGHADDR = 0xFFFF10FF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT OPB_Clk = SYS_CLK
 PORT Interrupt = timer_interrupt
END

BEGIN opb_emc_w
 PARAMETER INSTANCE = system_memcon
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_BASEADDR = 0xFFFF0000
 PARAMETER C_HIGHADDR = 0xFFFF01FF
 PARAMETER C_NUM_BANKS_MEM = 2
 PARAMETER C_OPB_CLK_PERIOD_PS = 19376
 PARAMETER C_MEM0_BASEADDR = 0xFFE0_0000
 PARAMETER C_MEM0_HIGHADDR = 0xFFEF_FFFF
 PARAMETER C_MEM1_BASEADDR = 0xFF00_0000
 PARAMETER C_MEM1_HIGHADDR = 0xFF7F_FFFF
 PARAMETER C_MEM0_WIDTH = 16
 PARAMETER C_MEM1_WIDTH = 16
 PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 0
 PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_1 = 0
 PARAMETER C_READ_ADDR_TO_OUT_SLOW_PS_0 = 45000
 PARAMETER C_WRITE_ADDR_TO_OUT_SLOW_PS_0 = 35000
 PARAMETER C_WRITE_MIN_PULSE_WIDTH_PS_0 = 35000
 PARAMETER C_READ_ADDR_TO_OUT_FAST_PS_0 = 45000
 PARAMETER C_WRITE_ADDR_TO_OUT_FAST_PS_0 = 35000
 PARAMETER C_READ_RECOVERY_BEFORE_WRITE_PS_0 = 0
 PARAMETER C_WRITE_RECOVERY_BEFORE_READ_PS_0 = 0
 PARAMETER C_READ_ADDR_TO_OUT_SLOW_PS_1 = 40000
 PARAMETER C_WRITE_ADDR_TO_OUT_SLOW_PS_1 = 40000
 PARAMETER C_WRITE_MIN_PULSE_WIDTH_PS_1 = 40000
 PARAMETER C_READ_ADDR_TO_OUT_FAST_PS_1 = 40000
 PARAMETER C_WRITE_ADDR_TO_OUT_FAST_PS_1 = 40000
 PARAMETER C_READ_RECOVERY_BEFORE_WRITE_PS_1 = 0
 PARAMETER C_WRITE_RECOVERY_BEFORE_READ_PS_1 = 0
 PARAMETER C_MAX_MEM_WIDTH = 16
 BUS_INTERFACE SOPB = d_opb_v20
 PORT OPB_Clk = SYS_CLK
 PORT Mem_A = MEMCON_ADR
 PORT Mem_OEN = MEMCON_OEn
 PORT Mem_WEN = MEMCON_WEn
 PORT Mem_CEN = MEMCON_CEn
 PORT Mem_BEN = MEMCON_BEn
 PORT Mem_DQ_O = MEMCON_DQ_O
 PORT Mem_DQ_I = MEMCON_DQ_I
 PORT Mem_DQ_T = MEMCON_DQ_T
END

BEGIN opb_intc
 PARAMETER INSTANCE = system_intc
 PARAMETER HW_VER = 1.00.c
 PARAMETER C_BASEADDR = 0xFFFF3000
 PARAMETER C_HIGHADDR = 0xFFFF30FF
 PARAMETER C_NUM_INTR_INPUTS = 3
 BUS_INTERFACE SOPB = d_opb_v20
 PORT Irq = interrupt
# PORT Intr = mac_interrupt &extension_uart_Interrupt& console_uart_interrupt & timer_interrupt
 PORT Intr = extension_uart_Interrupt & mac_interrupt& console_uart_interrupt & timer_interrupt
END

BEGIN opb_sdram_w
 PARAMETER INSTANCE = sdram_controller
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_INCLUDE_BURST_SUPPORT = 1
 PARAMETER C_INCLUDE_HIGHSPEED_PIPE = 1
 PARAMETER C_SDRAM_TMRD = 2
 PARAMETER C_SDRAM_TWR = 15000
 PARAMETER C_SDRAM_TCCD = 1
 PARAMETER C_SDRAM_TRAS = 45000
 PARAMETER C_SDRAM_TRC = 65000
 PARAMETER C_SDRAM_TRFC = 75000
 PARAMETER C_SDRAM_TRCD = 20000
 PARAMETER C_SDRAM_TRRD = 15000
 PARAMETER C_SDRAM_TRP = 20000
 PARAMETER C_SDRAM_TREF = 64
 PARAMETER C_SDRAM_REFRESH_NUMROWS = 4096
 PARAMETER C_SDRAM_CAS_LAT = 2
 PARAMETER C_SDRAM_DWIDTH = 16
 PARAMETER C_SDRAM_AWIDTH = 12
 PARAMETER C_SDRAM_COL_AWIDTH = 9
 PARAMETER C_SDRAM_BANK_AWIDTH = 2
 PARAMETER C_SDRAM_TREFI = 7812500
 PARAMETER C_OPB_CLK_PERIOD_PS = 19376
 PARAMETER C_BASEADDR = 0x80000000
 PARAMETER C_HIGHADDR = 0x80FFFFFF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT SDRAM_CASn = SDRAM_CASn
 PORT SDRAM_WEn = SDRAM_WEn
 PORT SDRAM_Clk_in = SYS_CLK
 PORT SDRAM_DQM = SDRAM_DQM
 PORT SDRAM_CSn = SDRAM_CSn
 PORT SDRAM_CKE = SDRAM_CKE
 PORT OPB_Clk = SYS_CLK
 PORT SDRAM_BankAddr = SDRAM_BS
 PORT SDRAM_RASn = SDRAM_RASn
 PORT SDRAM_Addr = SDRAM_ADR
 PORT SDRAM_DQ_O = SDRAM_DQ_O
 PORT SDRAM_DQ_I = SDRAM_DQ_I
 PORT SDRAM_DQ_T = SDRAM_DQ_T
END

BEGIN opb_gpio
 PARAMETER INSTANCE = opb_gpio_0
 PARAMETER HW_VER = 3.01.b
 PARAMETER C_GPIO_WIDTH = 8
 PARAMETER C_ALL_INPUTS = 0
 PARAMETER C_IS_BIDIR = 0
 PARAMETER C_BASEADDR = 0xFFFFA000
 PARAMETER C_HIGHADDR = 0xFFFFA1FF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT GPIO_in = GPIO_IO_0_I
 PORT GPIO_d_out = GPIO_IO_0_O
END

BEGIN microblaze
 PARAMETER INSTANCE = microblaze_i
 PARAMETER HW_VER = 4.00.b
 PARAMETER C_USE_BARREL = 1
 PARAMETER C_USE_DIV = 1
 PARAMETER C_FSL_DATA_SIZE = 32
 PARAMETER C_USE_ICACHE = 1
 PARAMETER C_ICACHE_BASEADDR = 0x80000000
 PARAMETER C_ICACHE_HIGHADDR = 0x80FFFFFF
 PARAMETER C_USE_FPU = 0
 PARAMETER C_USE_MSR_INSTR = 1
 PARAMETER C_USE_PCMP_INSTR = 1
 PARAMETER C_FPU_EXCEPTION = 0
 PARAMETER C_DIV_ZERO_EXCEPTION = 0
 PARAMETER C_DOPB_BUS_EXCEPTION = 0
 PARAMETER C_IOPB_BUS_EXCEPTION = 0
 PARAMETER C_ILL_OPCODE_EXCEPTION = 0
 PARAMETER C_UNALIGNED_EXCEPTIONS = 0
 PARAMETER C_USE_HW_MUL = 1
 PARAMETER C_DEBUG_ENABLED = 0
 PARAMETER C_FSL_LINKS = 2
 BUS_INTERFACE DLMB = d_lmb_v10
 BUS_INTERFACE ILMB = i_lmb_v10
 BUS_INTERFACE DOPB = d_opb_v20
 BUS_INTERFACE IOPB = d_opb_v20
 PORT INTERRUPT = interrupt
 PORT FSL1_S_CLK = microblaze_i_FSL1_S_CLK
 PORT FSL1_S_READ = microblaze_i_FSL1_S_READ
 PORT FSL1_S_DATA = microblaze_i_FSL1_S_DATA
 PORT FSL1_S_EXISTS = microblaze_i_FSL1_S_EXISTS
 PORT FSL1_M_CLK = microblaze_i_FSL1_M_CLK
 PORT FSL1_M_WRITE = microblaze_i_FSL1_M_WRITE
 PORT FSL1_M_DATA = microblaze_i_FSL1_M_DATA
 PORT FSL1_M_FULL = microblaze_i_FSL1_M_FULL
END

BEGIN opb_gpio
 PARAMETER INSTANCE = led_gpio
 PARAMETER HW_VER = 3.01.b
 PARAMETER C_GPIO_WIDTH = 1
 PARAMETER C_DOUT_DEFAULT = 0xffffffff
 PARAMETER C_BASEADDR = 0xFFFFA200
 PARAMETER C_HIGHADDR = 0xFFFFA3FF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT GPIO_d_out = LEDn
END

BEGIN lmb_v10
 PARAMETER INSTANCE = i_lmb_v10
 PARAMETER HW_VER = 1.00.a
 PORT SYS_Rst = SYS_RST
 PORT LMB_Clk = SYS_CLK
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = i_lmb_bram_if_cntlr
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00001fff
 BUS_INTERFACE SLMB = i_lmb_v10
 BUS_INTERFACE BRAM_PORT = conn_1
 PORT LMB_Clk = SYS_CLK
END

BEGIN opb_uartlite
 PARAMETER INSTANCE = extension_uart
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BAUDRATE = 115200
 PARAMETER C_USE_PARITY = 0
 PARAMETER C_CLK_FREQ = 51609600
 PARAMETER C_BASEADDR = 0xFFFF4000
 PARAMETER C_HIGHADDR = 0xFFFF40FF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT Interrupt = extension_uart_Interrupt
 PORT RX = EXT_RX
 PORT TX = EXT_TX
 PORT OPB_Clk = SYS_CLK
END

BEGIN dcm_module
 PARAMETER INSTANCE = dcm_14_multi
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_CLK0_BUF = FALSE
 PARAMETER C_CLKIN_PERIOD = 271.267361
 PARAMETER C_CLK_FEEDBACK = NONE
 PARAMETER C_EXT_RESET_HIGH = 1
 PARAMETER C_CLKFX_MULTIPLY = 14
 PARAMETER C_CLKFX_BUF = TRUE
 PARAMETER C_CLKIN_BUF = FALSE
 PARAMETER C_DUTY_CYCLE_CORRECTION = FALSE
 PARAMETER C_CLKOUT_PHASE_SHIFT = FIXED
 PORT CLKIN = SYS_CLK_IN
 PORT RST = net_gnd
 PORT CLKFX = SYS_CLK
END

BEGIN opb_v20
 PARAMETER INSTANCE = d_opb_v20
 PARAMETER HW_VER = 1.10.c
 PORT SYS_Rst = SYS_RST
 PORT OPB_Clk = SYS_CLK
END

BEGIN lmb_v10
 PARAMETER INSTANCE = d_lmb_v10
 PARAMETER HW_VER = 1.00.a
 PORT SYS_Rst = SYS_RST
 PORT LMB_Clk = SYS_CLK
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = d_lmb_bram_if_cntlr
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00001fff
 BUS_INTERFACE SLMB = d_lmb_v10
 BUS_INTERFACE BRAM_PORT = conn_0
 PORT LMB_Clk = SYS_CLK
END

BEGIN opb_uartlite
 PARAMETER INSTANCE = console_uart
 PARAMETER HW_VER = 1.00.b
 PARAMETER C_DATA_BITS = 8
 PARAMETER C_CLK_FREQ = 51609600
 PARAMETER C_BAUDRATE = 115200
 PARAMETER C_USE_PARITY = 0
 PARAMETER C_ODD_PARITY = 1
 PARAMETER C_BASEADDR = 0xFFFF2000
 PARAMETER C_HIGHADDR = 0xFFFF20FF
 BUS_INTERFACE SOPB = d_opb_v20
 PORT OPB_Clk = SYS_CLK
 PORT TX = CNSL_TX
 PORT RX = CNSL_RX
 PORT Interrupt = console_uart_interrupt
END

BEGIN bus_select_s
 PARAMETER INSTANCE = bus_select_s_0
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_COMPATIBLE_32MBIT = 0
 PORT SYS_RST_IN = SYS_RST_IN
 PORT BUS_REL = BUS_REL
 PORT SYS_RST = SYS_RST
 PORT SDRAM_ADR = SDRAM_ADR
 PORT SDRAM_DQ_O = SDRAM_DQ_O
 PORT SDRAM_DQ_I = SDRAM_DQ_I
 PORT SDRAM_DQ_T = SDRAM_DQ_T
 PORT MEMCON_CEn = MEMCON_CEn
 PORT MEMCON_ADR = MEMCON_ADR
 PORT MEMCON_BEn = MEMCON_BEn
 PORT MEMCON_WEn = MEMCON_WEn
 PORT MEMCON_OEn = MEMCON_OEn
 PORT MAC_AEN = MAC_AEN
 PORT MAC_WRn = MAC_WRn
 PORT MAC_RDn = MAC_RDn
 PORT MAC_BEn = MAC_BEn
 PORT MAC_ADSn = MAC_ADSn
 PORT MEMCON_DQ_O = MEMCON_DQ_O
 PORT MEMCON_DQ_I = MEMCON_DQ_I
 PORT MEMCON_DQ_T = MEMCON_DQ_T
 PORT LA = LA
 PORT LD = LD
 PORT FLASH_CEn = FLASH_CEn
 PORT FLASH_OEn = FLASH_OEn
 PORT FLASH_WEn = FLASH_WEn
 PORT FLASH_BYTEn = FLASH_BYTEn
 PORT GPIO_IO_0_O = GPIO_IO_0_O
 PORT GPIO_IO_0_I = GPIO_IO_0_I
 PORT BUS_REQ = BUS_REQ
 PORT BOOTMODE = BOOTMODE
 PORT FLASH_RnB = FLASH_RnB
 PORT MAC_ARDY = MAC_ARDY
 PORT RESERVE_COLLECT = RESERVE_COLLECT
 PORT FPGA_RESET_EN = FPGA_RESET_EN
 PORT RAM_CLK = RAM_CLK
END

BEGIN bram_block
 PARAMETER INSTANCE = bram_block_0
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_MEMSIZE = 8192
 BUS_INTERFACE PORTA = conn_0
 BUS_INTERFACE PORTB = conn_1
END