Skip to contentSkip to conversation

Q about bootstrap support for at91sam92* boards and proposal for retirement

DISCUSSION Sam Ravnborg 3 participants 7 messages Jan 9, 2022 – Jan 11, 2022

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi all.

This little detour started because Ahmad pointed out I had made a stupid mistake in pwm-atmel.
So I decided I wanted to give it a spin to verify if it actually works now.

The first challenge I encountered was that said driver had bit-rotted as it used the old pwm framework - so I updated it from the Linux kernel.
I have the code locally - but this time I will not have it posted before it is tested.

Then I cloned the latest at91bootstrap - but they no longer support old at91sam92xx CPUs.
So it was time to enable bootstrap support for at91sam9263.

In the past I had something working, but alas no luck this time.

Can anyone (Ahmad?) help me a little how to get the bootstrap functionality working on the at91sam9263?

I do not expect patches, but I hope for something that can point me in the right way to do it.

I have skov-arm9cpu boards (plenty - as they are mostly retired by SKOV) and one at91sam9263ek where I can test.

We see very little interest in at91sam92* boards and we could decide to retire all the boards that are not updated to multi-image. This could simplify things - and if there is interest the missing boards can be brought back to life provided they are updated to multi image. Any comments on this?
I am happy to type the patches - and verify that the boards I have works.

Sam

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#1 lore raw

Hi,

Quoted 3 lines

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

arch/arm/boards/skov-arm9cpu/lowlevel.c +20 -0
index d335953a7..8d5c0b025 100644
@@ -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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#2 lore raw

Hi Sam,

Quoted 23 lines · Sam Ravnborg

Hi,

Quoted 3 lines

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.

Quoted 7 lines

- 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

By porting sama5d3 I noticed that bootROM is resetting configuration for at least some of ip cores. So, the main question is, do everything needed for uart is still pre-configured? For example pllc and clk settings?

I would recommend to measure with scope the uart lines and see if you get something and if it is at expected frequency. JTAG would probably help as well to see what code is currently executed and if register configurations are in expected state.

As soon as UART is working, every thing else will be not really hard to do :)

Quoted 594 lines
arch/arm/boards/skov-arm9cpu/lowlevel.c +20 -0
index d335953a7..8d5c0b025 100644
@@ -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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Signature · 9 lines
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#3 lore raw

Hi Oleksij,

Quoted 4 lines

By porting sama5d3 I noticed that bootROM is resetting configuration for at least some of ip cores. So, the main question is, do everything needed for uart is still pre-configured? For example pllc and clk settings?

I found this in the data sheet that agrees with you:

"
Before performing the jump to the application in internal SRAM, all the PIOs and peripherals used in the boot program are set to their reset state.
"

I will throw some hours after this in the weekend to see if I can get it up and running.

Quoted 3 lines

As soon as UART is working, every thing else will be not really hard to do :)

Agree, except that I need find a nice way to add whatever I do to the current at91 stuff. But that is part of the fun.

Sam

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#4 lore raw
In reply to Sam Ravnborg

Hi Sam,

Quoted 11 lines · Sam Ravnborg

Hi,

Quoted 3 lines

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.

So the arm9cpu boots XIP from NAND, but the 9263ek boots from SD? Did I get that right?

Quoted 48 lines

- 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

arch/arm/boards/skov-arm9cpu/lowlevel.c +6 -0
index d335953a7..8d5c0b025 100644
@@ -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;
 }

arch/arm/boards/skov-arm9cpu/lowlevel.c static void __bare_init skovarm9cpu_board_config(struct at91sam926x_board_cfg *c · line 113

Quoted 10 lines
arch/arm/boards/skov-arm9cpu/lowlevel.c +9 -0
 
+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));

That's not safe to call here. pbl_set_putc accesses global variables, but there has been no relocation yet.

arch/arm/boards/skov-arm9cpu/lowlevel.c static void __bare_init skov_arm9cpu_init(void *fdt) · line 130

Quoted 12 lines
arch/arm/boards/skov-arm9cpu/lowlevel.c +5 -0
+	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();
+

If you have a functional skov arm9cpu configuration. Could you figure out the bare minimum of clock setup you need for DEBUG_LL to work and move that further up?

Once you get get to the barebox_arm_entry, you'll want to call into the PBL xload from MMC stuff instead, like Oleksij did for the SAMA5D3.

Cheers,
Ahmad

Quoted 539 lines
arch/arm/boards/skov-arm9cpu/lowlevel.c +0 -0
 	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

Signature · 9 lines
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#5 lore raw
In reply to Sam Ravnborg

Hello Sam,

Quoted 10 lines · Sam Ravnborg

Hi all.

This little detour started because Ahmad pointed out I had made a stupid mistake in pwm-atmel.
So I decided I wanted to give it a spin to verify if it actually works now.

The first challenge I encountered was that said driver had bit-rotted as it used the old pwm framework - so I updated it from the Linux kernel.

Ouch. How did I miss this :/

Quoted 9 lines

I have the code locally - but this time I will not have it posted before it is tested.

Then I cloned the latest at91bootstrap - but they no longer support old at91sam92xx CPUs.
So it was time to enable bootstrap support for at91sam9263.

In the past I had something working, but alas no luck this time.

Quoted 8 lines

Can anyone (Ahmad?) help me a little how to get the bootstrap functionality working on the at91sam9263?

I do not expect patches, but I hope for something that can point me in the right way to do it.

I have skov-arm9cpu boards (plenty - as they are mostly retired by SKOV) and one at91sam9263ek where I can test.

The skov-arm9cpu looks like it already runs first stage without at91bootstrap? So the issue is only with at91sam9263ek?

Quoted 2 lines

We see very little interest in at91sam92* boards and we could decide to retire all the boards that are not updated to multi-image.

As long as it works, I guess most people don't see a reason make interest publicly known.

Quoted 3 lines

This could simplify things - and if there is interest the missing boards can be brought back to life provided they are updated to multi image. Any comments on this?

I have only worked on SAMA5D3 and SAMA5D2. Of course, I'd like to see board code in AT91 replaced with DT-enabled/multi-image-compatible code, but I don't think it will happen. I don't think the maintenance burden is high, so I'd just leave it as is. If it bitrots and people complain, we can nudge them into the right direction.

Quoted 1 line

I am happy to type the patches - and verify that the boards I have works.

Great. Looking forward to more boards in at91_multi_defconfig.

Cheers,
Ahmad

Quoted 4 lines

Sam

Signature · 9 lines
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#6 lore raw

Hi Ahmad,

Quoted 12 lines
Quoted 12 lines

I have the code locally - but this time I will not have it posted before it is tested.

Then I cloned the latest at91bootstrap - but they no longer support old at91sam92xx CPUs.
So it was time to enable bootstrap support for at91sam9263.

In the past I had something working, but alas no luck this time.

Can anyone (Ahmad?) help me a little how to get the bootstrap functionality working on the at91sam9263?

Quoted 8 lines
Quoted 5 lines

I do not expect patches, but I hope for something that can point me in the right way to do it.

I have skov-arm9cpu boards (plenty - as they are mostly retired by SKOV) and one at91sam9263ek where I can test.

The skov-arm9cpu looks like it already runs first stage without at91bootstrap? So the issue is only with at91sam9263ek?

For the moment my focus is on the skov-arm9cpu - and here bootstrap is not (yet) functional. But I think with all the good feedback from you and Oleksij I should manage. Thanks for the replies!

Quoted 10 lines
Quoted 2 lines

We see very little interest in at91sam92* boards and we could decide to retire all the boards that are not updated to multi-image.

As long as it works, I guess most people don't see a reason make interest publicly known.

Quoted 3 lines

This could simplify things - and if there is interest the missing boards can be brought back to life provided they are updated to multi image. Any comments on this?

Quoted 5 lines

I have only worked on SAMA5D3 and SAMA5D2. Of course, I'd like to see board code in AT91 replaced with DT-enabled/multi-image-compatible code, but I don't think it will happen. I don't think the maintenance burden is high, so I'd just leave it as is. If it bitrots and people complain, we can nudge them into the right direction.

OK, you are right that if it just works no reason to touch it. I will do the patches alongside the current codebase then.

Sam

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox