From f8e19d47fb50253454be3564f6de27a760a4389d Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sat, 7 Mar 2015 11:02:48 -0600 Subject: [PATCH] arm: Rename BCM2708 to BCM2805 * To while there was some compatibility between BCM2708 and BCM2805, it makes the BCM2806 changes more confusing. We don't have any valueable BCM2708 targets. --- build/jam/board/raspberry_pi/BoardSetup | 10 +++---- .../kernel/arch/arm/{bcm2708.h => bcm2835.h} | 26 +++++++++---------- .../arm/board/raspberry_pi/board_config.h | 4 +-- src/system/boot/arch/arm/Jamfile | 4 +-- ...m2708.cpp => arch_framebuffer_bcm2835.cpp} | 24 ++++++++--------- ...x_bcm2708.cpp => arch_mailbox_bcm2835.cpp} | 22 ++++++++-------- .../boot/platform/raspberrypi_arm/Jamfile | 2 +- .../boot/platform/raspberrypi_arm/gpio.h | 2 +- .../boot/platform/raspberrypi_arm/video.cpp | 4 +-- .../platform/u-boot/arch/arm/arch_mailbox.cpp | 6 ++--- src/system/boot/platform/u-boot/video.cpp | 8 +++--- 11 files changed, 56 insertions(+), 56 deletions(-) rename headers/private/kernel/arch/arm/{bcm2708.h => bcm2835.h} (87%) rename src/system/boot/arch/arm/{arch_framebuffer_bcm2708.cpp => arch_framebuffer_bcm2835.cpp} (88%) rename src/system/boot/arch/arm/{arch_mailbox_bcm2708.cpp => arch_mailbox_bcm2835.cpp} (75%) diff --git a/build/jam/board/raspberry_pi/BoardSetup b/build/jam/board/raspberry_pi/BoardSetup index a4303d6b66..22807a4ec4 100644 --- a/build/jam/board/raspberry_pi/BoardSetup +++ b/build/jam/board/raspberry_pi/BoardSetup @@ -7,10 +7,10 @@ HAIKU_BOOT_PLATFORM = u-boot ; # Various hardcoded addresses # -HAIKU_BOARD_LOADER_BASE = 0x0 ; -HAIKU_BOARD_LOADER_ENTRY_RAW = 0x01000000 ; -HAIKU_BOARD_LOADER_ENTRY_LINUX = 0x01000000 ; -HAIKU_BOARD_LOADER_ENTRY_NBSD = 0x01000000 ; +HAIKU_BOARD_LOADER_BASE = 0x0c180000 ; +HAIKU_BOARD_LOADER_ENTRY_RAW = $(HAIKU_BOARD_LOADER_BASE) ; +HAIKU_BOARD_LOADER_ENTRY_LINUX = `printf \"obase=16;ibase=16;8 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; +HAIKU_BOARD_LOADER_ENTRY_NBSD = `printf \"obase=16;ibase=16;8 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; HAIKU_BOARD_BOOT_ARCHIVE_BASE = 0x04000000 ; HAIKU_BOARD_BOOT_ARCHIVE_SIZE = 0x00400000 ; @@ -49,7 +49,7 @@ HAIKU_BOARD_SDIMAGE_SIZE = 256 ; # gcc flags for the specific cpu # -local flags = -mtune=arm1176jzf-s -march=armv6 ; +local flags = -mtune=arm1176jzf-s -march=armv6 -mfloat-abi=softfp ; HAIKU_ASFLAGS_$(HAIKU_PACKAGING_ARCH) += $(flags) ; HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) += $(flags) ; diff --git a/headers/private/kernel/arch/arm/bcm2708.h b/headers/private/kernel/arch/arm/bcm2835.h similarity index 87% rename from headers/private/kernel/arch/arm/bcm2708.h rename to headers/private/kernel/arch/arm/bcm2835.h index 0b9bbbb78f..8d70d7a6e4 100644 --- a/headers/private/kernel/arch/arm/bcm2708.h +++ b/headers/private/kernel/arch/arm/bcm2835.h @@ -23,8 +23,8 @@ * Authors: * Alexander von Gluck, kallisti5@unixzen.com */ -#ifndef __PLATFORM_BCM2708_H -#define __PLATFORM_BCM2708_H +#ifndef __PLATFORM_BCM2835_H +#define __PLATFORM_BCM2835_H #define SIZE_4K 0x00001000 @@ -37,19 +37,19 @@ */ // Section 1.2.2 -#define BCM2708_SDRAM_BASE 0x00000000 -#define BCM2708_PERIPHERAL_BASE 0x20000000 +#define BCM2835_SDRAM_BASE 0x00000000 +#define BCM2835_PERIPHERAL_BASE 0x20000000 // Added to physical addresses to select the different cache behaviours -#define BCM2708_VIDEO_CORE_L1_L2_CACHED (0 << 30) -#define BCM2708_VIDEO_CORE_L2_COHERENT (1 << 30) -#define BCM2708_VIDEO_CORE_L2_CACHED (2 << 30) -#define BCM2708_VIDEO_CORE_UNCACHED (3 << 30) +#define BCM2835_VIDEO_CORE_L1_L2_CACHED (0 << 30) +#define BCM2835_VIDEO_CORE_L2_COHERENT (1 << 30) +#define BCM2835_VIDEO_CORE_L2_CACHED (2 << 30) +#define BCM2835_VIDEO_CORE_UNCACHED (3 << 30) // The highest two bits are used to select aliases to the physical memory // with different cache semantic. Clearing them converts the address to // physical memory as seen by ARM. -#define BCM2708_BUS_TO_PHYSICAL(x) (x & ~BCM2708_VIDEO_CORE_UNCACHED) +#define BCM2835_BUS_TO_PHYSICAL(x) (x & ~BCM2835_VIDEO_CORE_UNCACHED) #define ST_BASE 0x3000 @@ -57,7 +57,7 @@ #define DMA_BASE 0x7000 // DMA Controller, sec 4.2, page 39 #define ARM_BASE 0xB000 - // BCM2708 ARM Control Block, sec 7.5, page 112 + // BCM2835 ARM Control Block, sec 7.5, page 112 #define PM_BASE 0x100000 // Power Management, Reset controller and Watchdog registers #define GPIO_BASE 0x200000 @@ -89,10 +89,10 @@ #define VECT_BASE 0xFFFF0000 #define VECT_SIZE SIZE_4K -#define DEVICE_BASE BCM2708_PERIPHERAL_BASE +#define DEVICE_BASE BCM2835_PERIPHERAL_BASE #define DEVICE_SIZE 0xFFFFFF -#define SDRAM_BASE BCM2708_SDRAM_BASE +#define SDRAM_BASE BCM2835_SDRAM_BASE #define SDRAM_SIZE 0x4000000 // 64Mb @@ -149,4 +149,4 @@ #define ARM_MAILBOX_CHANNEL_FRAMEBUFFER 1 -#endif /* __PLATFORM_BCM2708_H */ +#endif /* __PLATFORM_BCM2835_H */ diff --git a/headers/private/kernel/arch/arm/board/raspberry_pi/board_config.h b/headers/private/kernel/arch/arm/board/raspberry_pi/board_config.h index 39d05ce841..efbf2ed6d9 100644 --- a/headers/private/kernel/arch/arm/board/raspberry_pi/board_config.h +++ b/headers/private/kernel/arch/arm/board/raspberry_pi/board_config.h @@ -12,9 +12,9 @@ #define BOARD_NAME_PRETTY "Raspberry Pi" #define BOARD_CPU_TYPE_ARM6 1 -#define BOARD_CPU_BCM2708 1 +#define BOARD_CPU_BCM2835 1 -#include +#include // UART Settings #define BOARD_UART_AMBA_PL011 1 diff --git a/src/system/boot/arch/arm/Jamfile b/src/system/boot/arch/arm/Jamfile index 44f7e13db3..e49296b770 100644 --- a/src/system/boot/arch/arm/Jamfile +++ b/src/system/boot/arch/arm/Jamfile @@ -34,10 +34,10 @@ BootMergeObject boot_arch_$(TARGET_KERNEL_ARCH).o : arch_uart_pl011.cpp arch_elf.cpp arch_framebuffer_920.cpp - arch_framebuffer_bcm2708.cpp + arch_framebuffer_bcm2835.cpp arch_framebuffer_pxa.cpp arch_framebuffer_omap3.cpp - arch_mailbox_bcm2708.cpp + arch_mailbox_bcm2835.cpp arch_cpu.cpp arch_mmu.cpp arch_start_kernel.S diff --git a/src/system/boot/arch/arm/arch_framebuffer_bcm2708.cpp b/src/system/boot/arch/arm/arch_framebuffer_bcm2835.cpp similarity index 88% rename from src/system/boot/arch/arm/arch_framebuffer_bcm2708.cpp rename to src/system/boot/arch/arm/arch_framebuffer_bcm2835.cpp index 86f90420e5..358a84713a 100644 --- a/src/system/boot/arch/arm/arch_framebuffer_bcm2708.cpp +++ b/src/system/boot/arch/arm/arch_framebuffer_bcm2835.cpp @@ -11,7 +11,7 @@ #include "arch_framebuffer.h" -#include +#include #include #include #include @@ -53,11 +53,11 @@ struct framebuffer_config { static framebuffer_config sFramebufferConfig __attribute__((aligned(16))); -class ArchFBArmBCM2708 : public ArchFramebuffer { +class ArchFBArmBCM2835 : public ArchFramebuffer { public: - ArchFBArmBCM2708(addr_t base) + ArchFBArmBCM2835(addr_t base) : ArchFramebuffer(base) {} - ~ArchFBArmBCM2708() {} + ~ArchFBArmBCM2835() {} virtual status_t Init(); virtual status_t Probe(); @@ -67,28 +67,28 @@ virtual status_t SetVideoMode(int width, int height, int depth); extern "C" ArchFramebuffer* -arch_get_fb_arm_bcm2708(addr_t base) +arch_get_fb_arm_bcm2835(addr_t base) { - return new ArchFBArmBCM2708(base); + return new ArchFBArmBCM2835(base); } status_t -ArchFBArmBCM2708::Init() +ArchFBArmBCM2835::Init() { return B_OK; } status_t -ArchFBArmBCM2708::Probe() +ArchFBArmBCM2835::Probe() { return B_OK; } status_t -ArchFBArmBCM2708::SetDefaultMode() +ArchFBArmBCM2835::SetDefaultMode() { status_t result; do { @@ -100,7 +100,7 @@ ArchFBArmBCM2708::SetDefaultMode() status_t -ArchFBArmBCM2708::SetVideoMode(int width, int height, int depth) +ArchFBArmBCM2835::SetVideoMode(int width, int height, int depth) { //debug_assert(((uint32)&sFramebufferConfig & 0x0f) == 0); @@ -124,7 +124,7 @@ ArchFBArmBCM2708::SetVideoMode(int width, int height, int depth) // TODO: arch_mailbox calls! // status_t result = write_mailbox(ARM_MAILBOX_CHANNEL_FRAMEBUFFER, -// (uint32)&sFramebufferConfig | BCM2708_VIDEO_CORE_L2_COHERENT); +// (uint32)&sFramebufferConfig | BCM2835_VIDEO_CORE_L2_COHERENT); // if (result != B_OK) // return result; @@ -159,7 +159,7 @@ ArchFBArmBCM2708::SetVideoMode(int width, int height, int depth) // * sFramebufferConfig.height); fPhysicalBase - = BCM2708_BUS_TO_PHYSICAL(sFramebufferConfig.frame_buffer_address); + = BCM2835_BUS_TO_PHYSICAL(sFramebufferConfig.frame_buffer_address); fSize = sFramebufferConfig.screen_size; // TODO: kDefaultPageFlags diff --git a/src/system/boot/arch/arm/arch_mailbox_bcm2708.cpp b/src/system/boot/arch/arm/arch_mailbox_bcm2835.cpp similarity index 75% rename from src/system/boot/arch/arm/arch_mailbox_bcm2708.cpp rename to src/system/boot/arch/arm/arch_mailbox_bcm2835.cpp index be90463f9d..4c5408e78c 100644 --- a/src/system/boot/arch/arm/arch_mailbox_bcm2708.cpp +++ b/src/system/boot/arch/arm/arch_mailbox_bcm2835.cpp @@ -13,15 +13,15 @@ #include "arch_mailbox.h" #include "arch_cpu.h" -#include "bcm2708.h" +#include "bcm2835.h" -class ArchMailboxArmBCM2708 final : public ArchMailbox { +class ArchMailboxArmBCM2835 final : public ArchMailbox { public: - ArchMailboxArmBCM2708(addr_t base) + ArchMailboxArmBCM2835(addr_t base) : ArchMailbox(base) {} - ~ArchMailboxArmBCM2708() {} + ~ArchMailboxArmBCM2835() {} virtual status_t Write(uint8 channel, uint32 value) override; virtual status_t Read(uint8 channel, uint32& value) override; @@ -34,14 +34,14 @@ private: extern "C" ArchMailbox* -arch_get_mailbox_arm_bcm2708(addr_t base) +arch_get_mailbox_arm_bcm2835(addr_t base) { - return new ArchMailboxArmBCM2708(base); + return new ArchMailboxArmBCM2835(base); } status_t -ArchMailboxArmBCM2708::Write(uint8 channel, uint32 value) +ArchMailboxArmBCM2835::Write(uint8 channel, uint32 value) { // We have to wait for the mailbox to drain if it is marked full. while ((RegisterRead(ARM_MAILBOX_STATUS) & ARM_MAILBOX_FULL) != 0) @@ -54,7 +54,7 @@ ArchMailboxArmBCM2708::Write(uint8 channel, uint32 value) status_t -ArchMailboxArmBCM2708::Read(uint8 channel, uint32& value) +ArchMailboxArmBCM2835::Read(uint8 channel, uint32& value) { while (true) { // Wait for something to arrive in the mailbox. @@ -76,21 +76,21 @@ ArchMailboxArmBCM2708::Read(uint8 channel, uint32& value) inline auto& -ArchMailboxArmBCM2708::GetRegister(unsigned reg) +ArchMailboxArmBCM2835::GetRegister(unsigned reg) { auto addr = fBase + ARM_CTRL_0_MAILBOX_BASE + reg; return *reinterpret_cast*>(addr); } inline uint32 -ArchMailboxArmBCM2708::RegisterRead(addr_t reg) +ArchMailboxArmBCM2835::RegisterRead(addr_t reg) { return GetRegister(reg).load(std::memory_order_acquire); } inline void -ArchMailboxArmBCM2708::RegisterWrite(addr_t reg, uint32 value) +ArchMailboxArmBCM2835::RegisterWrite(addr_t reg, uint32 value) { GetRegister(reg).store(value, std::memory_order_release); } diff --git a/src/system/boot/platform/raspberrypi_arm/Jamfile b/src/system/boot/platform/raspberrypi_arm/Jamfile index 069861bb80..bd6a8abb0f 100644 --- a/src/system/boot/platform/raspberrypi_arm/Jamfile +++ b/src/system/boot/platform/raspberrypi_arm/Jamfile @@ -37,7 +37,7 @@ BootMergeObject boot_platform_raspberrypi_arm.o : serial.cpp video.cpp - arch_framebuffer_bcm2708.cpp + arch_framebuffer_bcm2835.cpp $(genericPlatformSources) : -fno-pic diff --git a/src/system/boot/platform/raspberrypi_arm/gpio.h b/src/system/boot/platform/raspberrypi_arm/gpio.h index 5228e218c2..dc08409d6f 100644 --- a/src/system/boot/platform/raspberrypi_arm/gpio.h +++ b/src/system/boot/platform/raspberrypi_arm/gpio.h @@ -11,7 +11,7 @@ #include -#include +#include #define GPIO_IN 0 diff --git a/src/system/boot/platform/raspberrypi_arm/video.cpp b/src/system/boot/platform/raspberrypi_arm/video.cpp index e33a32dedd..3d253bed91 100644 --- a/src/system/boot/platform/raspberrypi_arm/video.cpp +++ b/src/system/boot/platform/raspberrypi_arm/video.cpp @@ -50,8 +50,8 @@ platform_switch_to_text_mode(void) extern "C" status_t platform_init_video(void) { - extern ArchFramebuffer* arch_get_framebuffer_arm_bcm2708(); - gFramebuffer = arch_get_framebuffer_arm_bcm2708(); + extern ArchFramebuffer* arch_get_framebuffer_arm_bcm2835(); + gFramebuffer = arch_get_framebuffer_arm_bcm2825(); if (gFramebuffer == NULL) return B_ERROR; diff --git a/src/system/boot/platform/u-boot/arch/arm/arch_mailbox.cpp b/src/system/boot/platform/u-boot/arch/arm/arch_mailbox.cpp index 73f066c07e..81eeab0c17 100644 --- a/src/system/boot/platform/u-boot/arch/arm/arch_mailbox.cpp +++ b/src/system/boot/platform/u-boot/arch/arm/arch_mailbox.cpp @@ -18,9 +18,9 @@ ArchMailbox *gMailbox = NULL; extern "C" status_t arch_mailbox_init() { - #if defined(BOARD_CPU_BCM2708) - extern ArchMailbox *arch_get_mailbox_arm_bcm2708(addr_t base); - gMailbox = arch_get_mailbox_arm_bcm2708(DEVICE_BASE); + #if defined(BOARD_CPU_BCM2835) || defined(BOARD_CPU_BCM2836) + extern ArchMailbox *arch_get_mailbox_arm_bcm2835(addr_t base); + gMailbox = arch_get_mailbox_arm_bcm2835(DEVICE_BASE); #endif return B_OK; } diff --git a/src/system/boot/platform/u-boot/video.cpp b/src/system/boot/platform/u-boot/video.cpp index 1ea111ba2a..7b2f0e8463 100644 --- a/src/system/boot/platform/u-boot/video.cpp +++ b/src/system/boot/platform/u-boot/video.cpp @@ -108,10 +108,10 @@ platform_init_video(void) #if defined(BOARD_CPU_ARM920T) extern ArchFramebuffer *arch_get_fb_arm_920(addr_t base); gFramebuffer = arch_get_fb_arm_920(0x88000000); - #elif defined(BOARD_CPU_BCM2708) - extern ArchFramebuffer *arch_get_fb_arm_bcm2708(addr_t base); - // BCM2708 gets its framebuffer base from a Mailbox - gFramebuffer = arch_get_fb_arm_bcm2708(0x0); + #elif defined(BOARD_CPU_BCM2835) || defined(BOARD_CPU_BCM2836) + extern ArchFramebuffer *arch_get_fb_arm_bcm2835(addr_t base); + // BCM2835/BCM2836 gets their framebuffer base from a Mailbox + gFramebuffer = arch_get_fb_arm_bcm2825(0x0); #elif defined(BOARD_CPU_OMAP3) extern ArchFramebuffer *arch_get_fb_arm_omap3(addr_t base); gFramebuffer = arch_get_fb_arm_omap3(FB_BASE);