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.
This commit is contained in:
@@ -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) ;
|
||||
|
||||
+13
-13
@@ -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 */
|
||||
@@ -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 <arch/arm/bcm2708.h>
|
||||
#include <arch/arm/bcm2825.h>
|
||||
|
||||
// UART Settings
|
||||
#define BOARD_UART_AMBA_PL011 1
|
||||
|
||||
@@ -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
|
||||
|
||||
+12
-12
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "arch_framebuffer.h"
|
||||
|
||||
#include <arch/arm/bcm2708.h>
|
||||
#include <arch/arm/bcm2835.h>
|
||||
#include <arch/cpu.h>
|
||||
#include <boot/stage2.h>
|
||||
#include <boot/platform.h>
|
||||
@@ -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
|
||||
+11
-11
@@ -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<std::atomic<uint32_t>*>(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);
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include <SupportDefs.h>
|
||||
|
||||
#include <arch/arm/bcm2708.h>
|
||||
#include <arch/arm/bcm2835.h>
|
||||
|
||||
|
||||
#define GPIO_IN 0
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user