Hi, > > Can anyone (Ahmad?) help me a little how to get the bootstrap > functionality working on the at91sam9263? To answer the obvious questions - what have I done so far. - I have an at91bootstrap generated BOOT.BIN that works. This ruins out a lot of possible issues with the SD card as the board boots from the SD card with the at91bootstrap based BOOT.BIN. - The toolchain used is generated from buildroot, and I do not have any proof that it works as I have not had any successes. So far I have assumed that it works. - The configuration used is pasted below. - The board I use is the skov-arm9cpu which I know works as it boots barebox with the at91bootstrap BOOT.BIN - I have only a limited set of patches - pasted below. - Latest barebox from the master branch - I have tried to power cycle and reset of the board - no change - There is a ">RomBOOT" prompt - but nothing else Sam diff --git a/arch/arm/boards/skov-arm9cpu/lowlevel.c b/arch/arm/boards/skov-arm9cpu/lowlevel.c index d335953a7..8d5c0b025 100644 --- a/arch/arm/boards/skov-arm9cpu/lowlevel.c +++ b/arch/arm/boards/skov-arm9cpu/lowlevel.c @@ -3,14 +3,20 @@ #include <linux/sizes.h> +#include <debug_ll.h> + #include <asm/barebox-arm.h> #include <mach/at91sam926x_board_init.h> #include <mach/at91sam9263_matrix.h> +#include <mach/at91_dbgu.h> +#include <mach/iomux.h> #define MASTER_PLL_MUL 171 #define MASTER_PLL_DIV 14 +#define MASTER_CLOCK (200000000/2) + static void __bare_init skovarm9cpu_board_config(struct at91sam926x_board_cfg *cfg) { /* Disable Watchdog */ @@ -96,6 +102,18 @@ static void __bare_init skovarm9cpu_board_config(struct at91sam926x_board_cfg *c AT91_RSTC_RSTTYP_WATCHDOG; } +static void dbgu_init(void) +{ + void __iomem *pio = IOMEM(AT91SAM9263_BASE_PIOC); + // Setup DBGU uart + at91_mux_pio3_pin(pio, pin_to_mask(AT91_PIN_PC30), AT91_MUX_PERIPH_A, GPIO_PULL_UP); // DRXD + at91_mux_pio3_pin(pio, pin_to_mask(AT91_PIN_PC31), AT91_MUX_PERIPH_A, 0); // DTXD + + at91_dbgu_setup_ll(IOMEM(AT91_BASE_DBGU1), MASTER_CLOCK, 115200); + pbl_set_putc(at91_dbgu_putc, IOMEM(AT91_BASE_DBGU1)); + putc_ll('#'); +} + static void __bare_init skov_arm9cpu_init(void *fdt) { struct at91sam926x_board_cfg cfg; @@ -108,6 +126,8 @@ static void __bare_init skov_arm9cpu_init(void *fdt) skovarm9cpu_board_config(&cfg); at91sam9263_board_init(&cfg); + dbgu_init(); + barebox_arm_entry(AT91_CHIPSELECT_1, at91_get_sdram_size(cfg.sdramc), fdt); } # # Automatically generated file; DO NOT EDIT. # Barebox/arm 2021.12.0 Configuration # CONFIG_ARM=y CONFIG_HAVE_MACH_ARM_HEAD=y CONFIG_ARM_USE_COMPRESSED_DTB=y CONFIG_TEXT_BASE=0x0 # # System Type # CONFIG_ARCH_AT91=y # CONFIG_ARCH_BCM283X is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_DIGIC is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_LAYERSCAPE is not set # CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_ROCKCHIP is not set # CONFIG_ARCH_SOCFPGA is not set # CONFIG_ARCH_S3C24xx is not set # CONFIG_ARCH_S5PCxx is not set # CONFIG_ARCH_S3C64xx is not set # CONFIG_ARCH_STM32MP is not set # CONFIG_ARCH_VERSATILE is not set # CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_UEMD is not set # CONFIG_ARCH_ZYNQ is not set # CONFIG_ARCH_ZYNQMP is not set # CONFIG_ARCH_ARM64_VIRT is not set # # Processor Type # CONFIG_CPU_32=y CONFIG_CPU_ARM926T=y CONFIG_CPU_32v5=y # # processor features # # CONFIG_BOOT_ENDIANNESS_SWITCH is not set CONFIG_HAVE_AT91_UTMI=y CONFIG_HAVE_AT91_USB_CLK=y CONFIG_COMMON_CLK_AT91=y CONFIG_HAVE_AT91_SMD=y CONFIG_HAVE_AT91_BOOTSTRAP=y CONFIG_AT91SAM926X_BOARD_INIT=y CONFIG_AT91SAM9_SMC=y CONFIG_HAVE_AT91SAM9_RST=y CONFIG_SOC_AT91SAM9=y CONFIG_ARCH_TEXT_BASE=0x23f00000 CONFIG_HAVE_AT91_LOAD_BAREBOX_SRAM=y # # Atmel AT91 System-on-Chip # CONFIG_SOC_AT91SAM9263=y CONFIG_AT91_MULTI_BOARDS=y CONFIG_MACH_SKOV_ARM9CPU=y # CONFIG_MACH_AT91SAM9263EK is not set # CONFIG_MACH_AT91SAM9X5EK is not set # CONFIG_MACH_MICROCHIP_KSZ9477_EVB is not set # CONFIG_MACH_SAMA5D3_XPLAINED is not set # CONFIG_MACH_SAMA5D27_SOM1 is not set # CONFIG_MACH_SAMA5D27_GIANTBOARD is not set # # AT91 Board Options # CONFIG_AT91_BOOTSTRAP=y # CONFIG_AT91_LOAD_BAREBOX_SRAM is not set CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x40000 # CONFIG_BOARD_ARM_GENERIC_DT is not set # CONFIG_AEABI is not set # end of System Type # # ARM specific settings # # CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS is not set CONFIG_ARM_EXCEPTIONS=y # CONFIG_ARM_SEMIHOSTING is not set # end of ARM specific settings CONFIG_GREGORIAN_CALENDER=y CONFIG_HAS_KALLSYMS=y CONFIG_HAS_MODULES=y CONFIG_HAS_CACHE=y CONFIG_HAS_DMA=y CONFIG_HAS_ARCH_SJLJ=y CONFIG_GENERIC_GPIO=y CONFIG_BLOCK=y CONFIG_BLOCK_WRITE=y CONFIG_USE_COMPRESSED_DTB=y CONFIG_FILETYPE=y # # General Settings # CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BANNER=y CONFIG_MEMINFO=y # CONFIG_ENVIRONMENT_VARIABLES is not set # CONFIG_GLOBALVAR is not set # # memory layout # CONFIG_HAVE_PBL_IMAGE=y CONFIG_HAVE_PBL_MULTI_IMAGES=y CONFIG_HAVE_IMAGE_COMPRESSION=y CONFIG_PBL_IMAGE=y CONFIG_PBL_MULTI_IMAGES=y CONFIG_PBL_RELOCATABLE=y CONFIG_IMAGE_COMPRESSION=y # CONFIG_IMAGE_COMPRESSION_LZ4 is not set CONFIG_IMAGE_COMPRESSION_LZO=y # CONFIG_IMAGE_COMPRESSION_GZIP is not set # CONFIG_IMAGE_COMPRESSION_XZKERN is not set # CONFIG_IMAGE_COMPRESSION_NONE is not set # CONFIG_MMU is not set CONFIG_BAREBOX_MAX_PBL_SIZE=0xffffffff CONFIG_BAREBOX_MAX_BARE_INIT_SIZE=0xffffffff CONFIG_STACK_SIZE=0x8000 CONFIG_MALLOC_SIZE=0x400000 # end of memory layout # CONFIG_EXPERIMENTAL is not set # CONFIG_MALLOC_DLMALLOC is not set CONFIG_MALLOC_TLSF=y # CONFIG_MALLOC_DUMMY is not set CONFIG_HAVE_MOD_ARCH_SPECIFIC=y # CONFIG_KALLSYMS is not set CONFIG_RELOCATABLE=y # CONFIG_PANIC_HANG is not set CONFIG_PROMPT="barebox:" CONFIG_BAUDRATE=115200 CONFIG_SIMPLE_READLINE=y CONFIG_CBSIZE=1024 # CONFIG_SHELL_HUSH is not set # CONFIG_SHELL_SIMPLE is not set CONFIG_SHELL_NONE=y # CONFIG_GLOB is not set # CONFIG_PASSWORD is not set CONFIG_ERRNO_MESSAGES=y CONFIG_TIMESTAMP=y # CONFIG_BOOTM is not set # CONFIG_BAREBOX_UPDATE is not set # CONFIG_IMD is not set # CONFIG_CONSOLE_FULL is not set CONFIG_CONSOLE_SIMPLE=y # CONFIG_CONSOLE_NONE is not set # CONFIG_CONSOLE_ALLOW_COLOR is not set # CONFIG_CONSOLE_DISABLE_INPUT is not set CONFIG_PBL_CONSOLE=y CONFIG_PARTITION=y CONFIG_PARTITION_DISK=y CONFIG_PARTITION_DISK_DOS=y # CONFIG_PARTITION_DISK_EFI is not set # CONFIG_ENV_HANDLING is not set # CONFIG_DEFAULT_ENVIRONMENT is not set # CONFIG_DEFAULT_COMPRESSION_GZIP is not set # CONFIG_DEFAULT_COMPRESSION_LZO is not set CONFIG_DEFAULT_COMPRESSION_NONE=y CONFIG_HAS_SCHED=y CONFIG_POLLER=y # CONFIG_BTHREAD is not set # CONFIG_STATE is not set # CONFIG_BOOTCHOOSER is not set CONFIG_EXTERNAL_DTS_FRAGMENTS="" # # OP-TEE loading # # CONFIG_PBL_OPTEE is not set # end of OP-TEE loading # end of General Settings # # Debugging # CONFIG_COMPILE_LOGLEVEL=6 CONFIG_DEFAULT_LOGLEVEL=7 CONFIG_DEBUG_LL=y CONFIG_DEBUG_AT91_UART=y CONFIG_DEBUG_AT91_UART_BASE=0xffffee00 # CONFIG_DEBUG_INITCALLS is not set # CONFIG_DEBUG_PROBES is not set # CONFIG_PBL_BREAK is not set # CONFIG_PRINTF_FULL is not set # CONFIG_UBSAN is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_CC_HAS_KASAN_GENERIC=y # CONFIG_KASAN is not set # CONFIG_COMPILE_TEST is not set # end of Debugging # # EFI (Extensible Firmware Interface) Support # # end of EFI (Extensible Firmware Interface) Support CONFIG_HAS_DEBUG_LL=y # CONFIG_NET is not set # # Drivers # CONFIG_OFTREE=y CONFIG_OFTREE_MEM_GENERIC=y CONFIG_DTC=y CONFIG_OFDEVICE=y CONFIG_OF_GPIO=y # CONFIG_OF_OVERLAY is not set # CONFIG_AIODEV is not set # # serial drivers # # CONFIG_DRIVER_SERIAL_ARM_DCC is not set # CONFIG_DRIVER_SERIAL_NS16550 is not set CONFIG_DRIVER_SERIAL_ATMEL=y # CONFIG_DRIVER_SERIAL_CADENCE is not set # CONFIG_SERIAL_SIFIVE is not set # end of serial drivers CONFIG_HAS_MACB=y # # SPI drivers # # CONFIG_SPI is not set # end of SPI drivers # CONFIG_I2C is not set # CONFIG_MTD is not set CONFIG_DISK=y CONFIG_DISK_WRITE=y # # drive types # # CONFIG_DISK_ATA is not set # CONFIG_DISK_AHCI is not set # # interface types # # CONFIG_DISK_INTF_PLATFORM_IDE is not set # CONFIG_USB_HOST is not set # CONFIG_USB_GADGET is not set # CONFIG_USB_MUSB is not set CONFIG_VIDEO=y # CONFIG_FRAMEBUFFER_CONSOLE is not set CONFIG_DRIVER_VIDEO_ATMEL=y # CONFIG_DRIVER_VIDEO_ATMEL_HLCD is not set # CONFIG_DRIVER_VIDEO_BOCHS_ISA is not set # CONFIG_DRIVER_VIDEO_SIMPLEFB_CLIENT is not set # CONFIG_DRIVER_VIDEO_SIMPLEFB is not set # CONFIG_DRIVER_VIDEO_EDID is not set CONFIG_DRIVER_VIDEO_BACKLIGHT=y # # Video encoder chips # # CONFIG_DRIVER_VIDEO_SIMPLE_PANEL is not set # CONFIG_SOUND is not set CONFIG_MCI=y # # --- Feature list --- # # CONFIG_MCI_STARTUP is not set CONFIG_MCI_WRITE=y CONFIG_MCI_MMC_BOOT_PARTITIONS=y # CONFIG_MCI_MMC_GPP_PARTITIONS is not set # # --- MCI host drivers --- # # CONFIG_MCI_DW is not set # CONFIG_MCI_ROCKCHIP_DWCMSHC is not set CONFIG_MCI_ATMEL=y # CONFIG_MCI_ATMEL_SDHCI is not set # CONFIG_MCI_ARASAN is not set CONFIG_HAVE_CLK=y CONFIG_CLKDEV_LOOKUP=y CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK_OF_PROVIDER=y # # Clocksource # CONFIG_CLOCKSOURCE_DUMMY_RATE=1000 CONFIG_CLOCKSOURCE_ATMEL_PIT=y # CONFIG_CLOCKSOURCE_DW_APB_TIMER is not set # end of Clocksource # # Multifunction device drivers # CONFIG_MFD_SYSCON=y # CONFIG_MFD_ATMEL_FLEXCOM is not set # end of Multifunction device drivers # # Misc devices # # CONFIG_JTAG is not set CONFIG_SRAM=y # CONFIG_DEV_MEM is not set # CONFIG_UBOOTVAR is not set # end of Misc devices CONFIG_LED=y CONFIG_LED_GPIO=y CONFIG_LED_GPIO_OF=y # CONFIG_LED_GPIO_RGB is not set # CONFIG_LED_GPIO_BICOLOR is not set CONFIG_LED_TRIGGERS=y # # EEPROM support # # end of EEPROM support # # Input device support # CONFIG_INPUT=y CONFIG_KEYBOARD_GPIO=y # CONFIG_INPUT_SPECIALKEYS is not set # end of Input device support # CONFIG_WATCHDOG is not set # CONFIG_PWM is not set # CONFIG_HWRNG is not set # # DMA support # # end of DMA support CONFIG_GPIOLIB=y # # GPIO # # CONFIG_GPIO_74XX_MMIO is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_DESIGNWARE is not set # CONFIG_GPIO_SIFIVE is not set # end of GPIO # CONFIG_W1 is not set # # Pin controllers # CONFIG_PINCTRL=y CONFIG_PINCTRL_AT91=y # CONFIG_PINCTRL_AT91PIO4 is not set # CONFIG_PINCTRL_SINGLE is not set # end of Pin controllers # CONFIG_NVMEM is not set # # Bus devices # # end of Bus devices # CONFIG_REGULATOR is not set # # Remoteproc drivers # # CONFIG_REMOTEPROC is not set # end of Remoteproc drivers # CONFIG_RESET_CONTROLLER is not set # CONFIG_RTC_CLASS is not set # # Firmware Drivers # # end of Firmware Drivers # # FPGA Configuration Support # # CONFIG_FPGA is not set # end of FPGA Configuration Support # CONFIG_GENERIC_PHY is not set # CONFIG_CRYPTO_HW is not set # # Memory controller drivers # # end of Memory controller drivers # # i.MX SoC drivers # # end of i.MX SoC drivers # # NVME Support # # end of NVME Support # CONFIG_SYSCON_REBOOT_MODE is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set # CONFIG_POWER_RESET_GPIO is not set # CONFIG_POWER_RESET_GPIO_RESTART is not set # CONFIG_VIRTIO_MENU is not set # end of Drivers # # Filesystem support # CONFIG_FS=y CONFIG_FS_LEGACY=y # # Some selected filesystems still use the legacy FS API. # # # Consider updating them. # # CONFIG_FS_CRAMFS is not set # CONFIG_FS_EXT4 is not set # CONFIG_FS_RAMFS is not set # CONFIG_FS_DEVFS is not set CONFIG_FS_FAT=y CONFIG_FS_FAT_WRITE=y CONFIG_FS_FAT_LFN=y # CONFIG_FS_BPKFS is not set # CONFIG_FS_UIMAGEFS is not set # CONFIG_FS_PSTORE is not set # CONFIG_FS_SQUASHFS is not set # # ZLIB support disabled # # # LZ4 support disabled # # # LZO support disabled # # # XZ support disabled # # # ZSTD support disabled # # end of Filesystem support # # Library routines # CONFIG_UNCOMPRESS=y CONFIG_ZLIB=y # CONFIG_BZLIB is not set # CONFIG_LZ4_DECOMPRESS is not set # CONFIG_ZSTD_DECOMPRESS is not set # CONFIG_XZ_DECOMPRESS is not set # CONFIG_BASE64 is not set CONFIG_LZO_DECOMPRESS=y # CONFIG_ALLOW_PRNG_FALLBACK is not set # CONFIG_CRC_CCITT is not set # CONFIG_CRC8 is not set # # Library gui routines # # end of Library gui routines # CONFIG_BAREBOX_LOGO is not set CONFIG_BOOTSTRAP=y CONFIG_BOOTSTRAP_DEVFS=y CONFIG_BOOTSTRAP_DISK=y # CONFIG_NLS is not set # CONFIG_BLOBGEN is not set CONFIG_ARCH_HAS_DATA_ABORT_MASK=y # end of Library routines # # Crypto support # # CONFIG_DIGEST is not set # CONFIG_CRYPTO_KEYSTORE is not set # end of Crypto support # # Firmware files # CONFIG_EXTRA_FIRMWARE_DIR="firmware" # end of Firmware files # # Host Tools # # CONFIG_COMPILE_HOST_TOOLS is not set # end of Host Tools # # Target Tools # # CONFIG_KERNEL_INSTALL_TARGET is not set # CONFIG_BAREBOXENV_TARGET is not set # CONFIG_BAREBOXCRC32_TARGET is not set # CONFIG_MVEBU_KWBOOT_TARGET is not set # end of Target Tools # CONFIG_TEST is not set _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox