Hi, I've built u-boot proper for microblaze with:
CONFIG_MICROBLAZE=y CONFIG_TEXT_BASE=0x80100000 CONFIG_SYS_MALLOC_LEN=0xc0000 CONFIG_SYS_MALLOC_F_LEN=0x400 CONFIG_NR_DRAM_BANKS=1 CONFIG_ENV_SIZE=0x20000 CONFIG_DEFAULT_DEVICE_TREE="system" CONFIG_SYS_LOAD_ADDR=0x0 CONFIG_DEBUG_UART_BASE=0x40600000 CONFIG_DEBUG_UART_CLOCK=83250000 CONFIG_TARGET_MICROBLAZE_GENERIC=y CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 CONFIG_XILINX_MICROBLAZE0_USE_DIV=1 CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2 CONFIG_XILINX_MICROBLAZE0_HW_VER="11.0" CONFIG_XILINX_MICROBLAZE0_FPGA_FAMILY="artix7" CONFIG_DEBUG_UART=y CONFIG_SYS_LITTLE_ENDIAN=y CONFIG_CC_OPTIMIZE_FOR_DEBUG=y I can load this via xsdb and u-boot works and is capable of booting Linux kernel. However, there are a couple of things I don't understand. First off, if I set CONFIG_TEXT_BASE=0x80000000 (the exact beginning of RAM), it won't boot, not even early debug message will appear. Why is that? And the second thing, my endgame is to embed u-boot.elf into Microblaze itself, so it acts as FSBL. I reduced the size to the maximum and I got a quite small binary, even smaller than my current bootloader (the one from Xilinx that loads an SREC image from flash), so there shouldn't be any issue from that part. To do this, I set CONFIG_TEXT_BASE=0x0, but again, no early boot debug message appears. I've tried different values for CONFIG_TEXT_BASE in this case, but none of them will work. Also, in either case, I'm not sure why, but I can't debug step by step via xsdb, I won't see what ASM or C code matches with current PC address. However, SPL will let me run it step by step via xsdb. I'd appreciate any help regarding this. Best regards, thank you -- Álvaro G. M.

