diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules index 16bf7d4822..274789f506 100644 --- a/build/jam/ArchitectureRules +++ b/build/jam/ArchitectureRules @@ -234,7 +234,12 @@ rule KernelArchitectureSetup architecture case arm : switch $(HAIKU_BOOT_BOARD) { - case beagle : + case beagleboard : + { + HAIKU_BOOT_PLATFORM ?= u-boot ; + HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; + } + case beaglebone : { HAIKU_BOOT_PLATFORM ?= u-boot ; HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; diff --git a/build/jam/board/beagle/BoardSetup b/build/jam/board/beagleboard/BoardSetup similarity index 100% rename from build/jam/board/beagle/BoardSetup rename to build/jam/board/beagleboard/BoardSetup diff --git a/build/jam/board/beaglebone/BoardSetup b/build/jam/board/beaglebone/BoardSetup new file mode 100644 index 0000000000..28a6fd4c69 --- /dev/null +++ b/build/jam/board/beaglebone/BoardSetup @@ -0,0 +1,61 @@ +# BeagleBone board-specific definitions + +HAIKU_BOARD_DESCRIPTION = "BeagleBone" ; +HAIKU_BOARD_FDT_NAME = "beaglebone-black" ; + +# Not that many in the wild +#HAIKU_BOARD_FDT_NAME = "beaglebone" ; + + +# +# Various hardcoded addresses +# + +# load address for haiku_loader +HAIKU_BOARD_LOADER_BASE = 0x80800000 ; +HAIKU_BOARD_LOADER_ENTRY_RAW = $(HAIKU_BOARD_LOADER_BASE) ; +HAIKU_BOARD_LOADER_ENTRY_NBSD = `printf \"obase=16;ibase=16;8 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; +HAIKU_BOARD_LOADER_ENTRY_LINUX = `printf \"obase=16;ibase=16;10 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; + +# +# mmc/SD image +# + +# in MB +HAIKU_BOARD_SDIMAGE_SIZE = 64 ; +HAIKU_BOARD_SDIMAGE_FAT_SIZE = 32 ; + +# OMAP x-loader image, must be first file on FAT partition +HAIKU_BOARD_MLO_IMAGE_URL = https://github.com/kallisti5/beagle-uboot-bins/raw/master/beaglebone ; +mloFile = [ DownloadFile MLO : $(HAIKU_BOARD_MLO_IMAGE_URL)/MLO ] ; + +# u-boot image +HAIKU_BOARD_UBOOT_IMAGE_URL = https://github.com/kallisti5/beagle-uboot-bins/raw/master/beaglebone ; +ubootFile = [ DownloadFile u-boot.img : $(HAIKU_BOARD_UBOOT_IMAGE_URL)/u-boot.img ] ; + +# U-Boot environment +HAIKU_BOARD_SDIMAGE_UBOOT_SCRIPT_NAME = boot.scr ; +HAIKU_BOARD_SDIMAGE_UBOOT_SCRIPT = "\ +fatload mmc 0 ${fdt_addr_r} $(HAIKU_BOARD_FDT_NAME).dtb \ + fdt addr ${fdt_addr_r} \ + fatload mmc 0 ${ramdisk_addr_r} haiku-floppyboot.tgz.ub \ + fatload mmc 0 ${kernel_addr_r} haiku_loader_linux.ub \ + bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}" ; + +HAIKU_BOARD_SDIMAGE_FILES = + $(mloFile) + $(ubootFile) + $(HAIKU_BOARD_FDT_NAME).dtb + haiku_loader_linux.ub + haiku-floppyboot.tgz.ub + $(HAIKU_BOARD_SDIMAGE_UBOOT_SCRIPT_NAME) +; + +# +# gcc flags for the specific cpu + +local flags = -mcpu=cortex-a8 -mfpu=vfpv3 -mfloat-abi=hard ; + +HAIKU_ASFLAGS_$(HAIKU_PACKAGING_ARCH) += $(flags) ; +HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) += $(flags) ; +HAIKU_C++FLAGS_$(HAIKU_PACKAGING_ARCH) += $(flags) ; diff --git a/configure b/configure index 1f74243312..6d77c4c7eb 100755 --- a/configure +++ b/configure @@ -83,8 +83,9 @@ options: first occurrence specifies the primary architecture of the Haiku to build, subsequent ones the secondary architectures. - --target-board ARM only: Specify the board to build for. Must be - one of beagle,rpi1,rpi2,cubieboard4,verdex,overo. + --target-board ARM only: Target board to build for. + is one of: "beagleboard","beaglebone", + "rpi1","rpi2","cubieboard4","verdex","overo" --update re-runs last configure invocation [must be given as first option!] --use-clang Build with host Clang instead of GCC cross @@ -473,7 +474,8 @@ supportedTargetArchs=" x86_gcc2 " supportedTargetBoards=" - beagle + beagleboard + beaglebone rpi1 rpi2 cubieboard4 diff --git a/headers/private/kernel/arch/arm/board/beagle/board_config.h b/headers/private/kernel/arch/arm/board/beagleboard/board_config.h similarity index 100% rename from headers/private/kernel/arch/arm/board/beagle/board_config.h rename to headers/private/kernel/arch/arm/board/beagleboard/board_config.h diff --git a/headers/private/kernel/arch/arm/board/beaglebone/board_config.h b/headers/private/kernel/arch/arm/board/beaglebone/board_config.h new file mode 100644 index 0000000000..efc35d2372 --- /dev/null +++ b/headers/private/kernel/arch/arm/board/beaglebone/board_config.h @@ -0,0 +1,29 @@ +/* + * Copyright 2009 + * Distributed under the terms of the MIT License. + */ +#ifndef _BOARD_BEAGLE_BONE_CONFIG_H +#define _BOARD_BEAGLE_BONE_CONFIG_H + + +#define BOARD_NAME_PRETTY "BeagleBone" + +#define BOARD_CPU_TYPE_OMAP 1 +#define BOARD_CPU_OMAP3 1 + +#include + +// UART Settings +#define BOARD_UART_8250 1 + +#define BOARD_UART1_BASE OMAP_UART1_BASE +#define BOARD_UART2_BASE OMAP_UART2_BASE +#define BOARD_UART3_BASE OMAP_UART3_BASE + +#define BOARD_UART_DEBUG BOARD_UART3_BASE + +#define BOARD_UART_CLOCK 48000000 + // 48MHz (APLL96/2) + + +#endif /* _BOARD_BEAGLE_BONE_CONFIG_H */