Changes in / [3deb0155:b4f43a1] in mainline
- Files:
-
- 2 added
- 9 deleted
- 16 edited
-
HelenOS.config (modified) (7 diffs)
-
boot/arch/arm32/Makefile.inc (modified) (1 diff)
-
boot/arch/arm32/include/arch.h (modified) (1 diff)
-
boot/arch/arm32/include/main.h (modified) (1 diff)
-
boot/arch/arm32/include/mm.h (modified) (1 diff)
-
boot/arch/arm32/src/mm.c (modified) (2 diffs)
-
boot/arch/arm32/src/putchar.c (modified) (2 diffs)
-
defaults/arm32/raspberrypi/Makefile.config (deleted)
-
kernel/arch/arm32/Makefile.inc (modified) (1 diff)
-
kernel/arch/arm32/_link.ld.in (modified) (1 diff)
-
kernel/arch/arm32/include/arch/cp15.h (modified) (1 diff)
-
kernel/arch/arm32/include/arch/mach/integratorcp/integratorcp.h (modified) (1 diff)
-
kernel/arch/arm32/include/arch/mach/raspberrypi/raspberrypi.h (deleted)
-
kernel/arch/arm32/include/arch/mm/frame.h (modified) (1 diff)
-
kernel/arch/arm32/src/mach/integratorcp/integratorcp.c (modified) (4 diffs)
-
kernel/arch/arm32/src/mach/raspberrypi/raspberrypi.c (deleted)
-
kernel/arch/arm32/src/machine_func.c (modified) (2 diffs)
-
kernel/arch/arm32/src/mm/page.c (modified) (1 diff)
-
kernel/genarch/Makefile.inc (modified) (2 diffs)
-
kernel/genarch/include/genarch/drivers/arm926_uart/arm926_uart.h (added)
-
kernel/genarch/include/genarch/drivers/bcm2835/irc.h (deleted)
-
kernel/genarch/include/genarch/drivers/bcm2835/mbox.h (deleted)
-
kernel/genarch/include/genarch/drivers/bcm2835/timer.h (deleted)
-
kernel/genarch/include/genarch/drivers/pl011/pl011.h (deleted)
-
kernel/genarch/src/drivers/arm926_uart/arm926_uart.c (added)
-
kernel/genarch/src/drivers/bcm2835/mbox.c (deleted)
-
kernel/genarch/src/drivers/pl011/pl011.c (deleted)
Legend:
- Unmodified
- Added
- Removed
-
HelenOS.config
r3deb0155 rb4f43a1 66 66 @ "beagleboardxm" BeagleBoard-xM 67 67 @ "beaglebone" BeagleBone 68 @ "raspberrypi" Raspberry Pi69 68 ! [PLATFORM=arm32] MACHINE (choice) 70 69 … … 100 99 ! [PLATFORM=arm32&MACHINE=integratorcp] PROCESSOR (choice) 101 100 102 % CPU type103 @ "arm1176" ARM1176104 ! [PLATFORM=arm32&MACHINE=raspberrypi] PROCESSOR (choice)105 101 106 102 # Add more ARMv4 CPUs … … 113 109 @ "armv5" ARMv5 114 110 ! [PLATFORM=arm32&(PROCESSOR=arm926ej_s)] PROCESSOR_ARCH (choice) 115 116 # Add more ARMv6 CPUs117 % CPU arch118 @ "armv6" ARMv6119 ! [PLATFORM=arm32&(PROCESSOR=arm1176)] PROCESSOR_ARCH (choice)120 111 121 112 # Add more ARMv7-A CPUs … … 456 447 % Output device class 457 448 @ "generic" Monitor or serial line 458 ! [PLATFORM=arm32&(MACHINE=gta02|MACHINE=integratorcp|MACHINE=beagleboardxm|MACHINE=beaglebone |MACHINE=raspberrypi)] CONFIG_HID_OUT (choice)449 ! [PLATFORM=arm32&(MACHINE=gta02|MACHINE=integratorcp|MACHINE=beagleboardxm|MACHINE=beaglebone)] CONFIG_HID_OUT (choice) 459 450 460 451 % Output device class … … 487 478 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_NS16550 (y/n) 488 479 489 % Support for PL011UART490 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32& (MACHINE=integratorcp|MACHINE=raspberrypi)] CONFIG_PL011_UART (y/n)480 % Support for ARM926 on-chip UART 481 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_ARM926_UART (y/n) 491 482 492 483 % Support for Samsung S3C24XX on-chip UART … … 505 496 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=beagleboardxm] CONFIG_AMDM37X_UART (y/n) 506 497 507 % Support for BCM2835 mailbox508 ! [PLATFORM=arm32&MACHINE=raspberrypi] CONFIG_BCM2835_MAILBOX (y/n)509 510 498 % Support for i8042 controller 511 499 ! [CONFIG_PC_KBD=y] CONFIG_I8042 (y) … … 527 515 528 516 % Serial line input module 529 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_ PL011_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_AM335X_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_AMDM37X_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)|(PLATFORM=arm32&MACHINE=raspberrypi&CONFIG_PL011_UART=y)] CONFIG_SRLN (y)517 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_ARM926_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_AM335X_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_AMDM37X_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)] CONFIG_SRLN (y) 530 518 531 519 % EGA support -
boot/arch/arm32/Makefile.inc
r3deb0155 rb4f43a1 43 43 endif 44 44 45 ifeq ($(MACHINE), raspberrypi)46 BOOT_OUTPUT = image.boot47 POST_OUTPUT = $(ROOT_PATH)/uImage.bin48 LADDR = 0x0000800049 SADDR = 0x0000800050 POSTBUILD = Makefile.uboot51 endif52 53 45 BFD_NAME = elf32-littlearm 54 46 BFD_OUTPUT = $(BFD_NAME) -
boot/arch/arm32/include/arch.h
r3deb0155 rb4f43a1 46 46 #elif defined MACHINE_beaglebone 47 47 #define BOOT_BASE 0x80000000 48 #elif defined MACHINE_raspberrypi49 #define BOOT_BASE 0x0000800050 48 #else 51 49 #define BOOT_BASE 0x00000000 -
boot/arch/arm32/include/main.h
r3deb0155 rb4f43a1 75 75 #define ICP_SCONS_ADDR 0x16000000 76 76 77 /** Raspberry PI serial console registers */78 #define BCM2835_UART0_BASE 0x2020100079 #define BCM2835_UART0_DR (BCM2835_UART0_BASE + 0x00)80 #define BCM2835_UART0_FR (BCM2835_UART0_BASE + 0x18)81 #define BCM2835_UART0_ILPR (BCM2835_UART0_BASE + 0x20)82 #define BCM2835_UART0_IBRD (BCM2835_UART0_BASE + 0x24)83 #define BCM2835_UART0_FBRD (BCM2835_UART0_BASE + 0x28)84 #define BCM2835_UART0_LCRH (BCM2835_UART0_BASE + 0x2C)85 #define BCM2835_UART0_CR (BCM2835_UART0_BASE + 0x30)86 #define BCM2835_UART0_ICR (BCM2835_UART0_BASE + 0x44)87 88 #define BCM2835_UART0_FR_TXFF (1 << 5)89 #define BCM2835_UART0_LCRH_FEN (1 << 4)90 #define BCM2835_UART0_LCRH_WL8 ((1 << 5) | (1 << 6))91 #define BCM2835_UART0_CR_UARTEN (1 << 0)92 #define BCM2835_UART0_CR_TXE (1 << 8)93 #define BCM2835_UART0_CR_RXE (1 << 9)94 95 96 97 77 extern void bootstrap(void); 98 78 -
boot/arch/arm32/include/mm.h
r3deb0155 rb4f43a1 68 68 #define AM335x_RAM_END 0xC0000000 69 69 70 /** Start of ram memory on BCM2835 */71 #define BCM2835_RAM_START 072 /** End of ram memory on BCM2835 */73 #define BCM2835_RAM_END 0x2000000074 70 75 71 /* Page table level 0 entry - "section" format is used -
boot/arch/arm32/src/mm.c
r3deb0155 rb4f43a1 75 75 if (address >= AM335x_RAM_START && address < AM335x_RAM_END) 76 76 return 1; 77 #elif defined MACHINE_raspberrypi78 const unsigned long address = section << PTE_SECTION_SHIFT;79 if (address < BCM2835_RAM_END)80 return 1;81 77 #endif 82 78 return 0; … … 117 113 static void init_boot_pt(void) 118 114 { 119 #if defined MACHINE_raspberrypi120 const pfn_t split_page = 2048;121 #else122 115 const pfn_t split_page = PTL0_ENTRIES; 123 #endif124 125 116 /* Create 1:1 virtual-physical mapping (in lower 2 GB). */ 126 117 pfn_t page; 127 118 for (page = 0; page < split_page; page++) 128 119 init_ptl0_section(&boot_pt[page], page); 129 130 #if defined MACHINE_raspberrypi 131 for (; page < PTL0_ENTRIES; page++) 132 init_ptl0_section(&boot_pt[page], page - split_page); 133 #endif 120 134 121 asm volatile ( 135 122 "mcr p15, 0, %[pt], c2, c0, 0\n" -
boot/arch/arm32/src/putchar.c
r3deb0155 rb4f43a1 122 122 #endif 123 123 124 #ifdef MACHINE_raspberrypi125 126 static int raspi_init;127 128 static inline void write32(uint32_t addr, uint32_t data)129 {130 *(volatile uint32_t *)(addr) = data;131 }132 133 static inline uint32_t read32(uint32_t addr)134 {135 return *(volatile uint32_t *)(addr);136 }137 138 static void scons_init_raspi(void)139 {140 write32(BCM2835_UART0_CR, 0x0); /* Disable UART */141 write32(BCM2835_UART0_ICR, 0x7f); /* Clear interrupts */142 write32(BCM2835_UART0_IBRD, 1); /* Set integer baud rate */143 write32(BCM2835_UART0_FBRD, 40); /* Set fractional baud rate */144 write32(BCM2835_UART0_LCRH,145 BCM2835_UART0_LCRH_FEN | /* Enable FIFOs */146 BCM2835_UART0_LCRH_WL8); /* Word length: 8 */147 write32(BCM2835_UART0_CR,148 BCM2835_UART0_CR_UARTEN | /* Enable UART */149 BCM2835_UART0_CR_TXE | /* Enable TX */150 BCM2835_UART0_CR_RXE); /* Enable RX */151 }152 153 static void scons_sendb_raspi(uint8_t byte)154 {155 if (!raspi_init) {156 scons_init_raspi();157 raspi_init = 1;158 }159 160 while (read32(BCM2835_UART0_FR) & BCM2835_UART0_FR_TXFF);161 162 write32(BCM2835_UART0_DR, byte);163 }164 #endif165 166 124 /** Send a byte to the serial console. 167 125 * … … 181 139 #ifdef MACHINE_integratorcp 182 140 scons_sendb_icp(byte); 183 #endif184 #ifdef MACHINE_raspberrypi185 scons_sendb_raspi(byte);186 141 #endif 187 142 } -
kernel/arch/arm32/Makefile.inc
r3deb0155 rb4f43a1 89 89 endif 90 90 91 ifeq ($(MACHINE),raspberrypi)92 ARCH_SOURCES += arch/$(KARCH)/src/mach/raspberrypi/raspberrypi.c93 endif94 95 91 ifeq ($(CONFIG_PL050),y) 96 92 ARCH_SOURCES += genarch/src/drivers/pl050/pl050.c -
kernel/arch/arm32/_link.ld.in
r3deb0155 rb4f43a1 13 13 #elif defined MACHINE_beaglebone 14 14 #define KERNEL_LOAD_ADDRESS 0x80a00000 15 #elif defined MACHINE_raspberrypi16 #define KERNEL_LOAD_ADDRESS 0x80a0800017 15 #else 18 16 #define KERNEL_LOAD_ADDRESS 0x80a00000 -
kernel/arch/arm32/include/arch/cp15.h
r3deb0155 rb4f43a1 223 223 SCTLR_FAST_IRQ_EN_FLAG = 1 << 21, /* Disable impl. specific feat*/ 224 224 SCTLR_UNALIGNED_EN_FLAG = 1 << 22, /* Must be 1 on armv7 */ 225 SCTLR_EXTENDED_PT_EN_FLAG = 1 << 23,226 225 SCTLR_IRQ_VECTORS_EN_FLAG = 1 << 24, 227 226 SCTLR_BIG_ENDIAN_EXC_FLAG = 1 << 25, -
kernel/arch/arm32/include/arch/mach/integratorcp/integratorcp.h
r3deb0155 rb4f43a1 46 46 #define ICP_IRQC_MAX_IRQ 8 47 47 #define ICP_KBD_IRQ 3 48 #define ICP_TIMER_IRQ 6 49 #define ICP_UART0_IRQ 1 48 #define ICP_TIMER_IRQ 6 50 49 51 50 /** Timer frequency */ -
kernel/arch/arm32/include/arch/mm/frame.h
r3deb0155 rb4f43a1 61 61 #define BOOT_PAGE_TABLE_ADDRESS 0x80008000 62 62 63 #elif defined MACHINE_raspberrypi64 65 #define PHYSMEM_START_ADDR 0x0000000066 #define BOOT_PAGE_TABLE_ADDRESS 0x0001000067 68 63 #else 69 64 -
kernel/arch/arm32/src/mach/integratorcp/integratorcp.c
r3deb0155 rb4f43a1 37 37 #include <ipc/irq.h> 38 38 #include <console/chardev.h> 39 #include <genarch/drivers/pl011/pl011.h>40 39 #include <genarch/drivers/pl050/pl050.h> 40 #include <genarch/drivers/arm926_uart/arm926_uart.h> 41 41 #include <genarch/kbrd/kbrd.h> 42 42 #include <genarch/srln/srln.h> … … 61 61 icp_hw_map_t hw_map; 62 62 irq_t timer_irq; 63 pl011_uart_t uart;63 arm926_uart_t uart; 64 64 } icp; 65 65 … … 314 314 stdout_wire(fbdev); 315 315 #endif 316 #ifdef CONFIG_PL011_UART 317 if (pl011_uart_init(&icp.uart, ICP_UART0_IRQ, ICP_UART)) 316 #ifdef CONFIG_ARM926_UART 317 if (arm926_uart_init(&icp.uart, ARM926_UART0_IRQ, 318 ARM926_UART0_BASE_ADDRESS, sizeof(arm926_uart_regs_t))) 318 319 stdout_wire(&icp.uart.outdev); 319 320 #endif … … 349 350 ICP_KBD); 350 351 351 #ifdef CONFIG_ PL011_UART352 #ifdef CONFIG_ARM926_UART 352 353 srln_instance_t *srln_instance = srln_init(); 353 354 if (srln_instance) { 354 355 indev_t *sink = stdin_wire(); 355 356 indev_t *srln = srln_wire(srln_instance, sink); 356 pl011_uart_input_wire(&icp.uart, srln);357 icp_irqc_unmask(ICP_UART0_IRQ);357 arm926_uart_input_wire(&icp.uart, srln); 358 icp_irqc_unmask(ARM926_UART0_IRQ); 358 359 } 359 360 #endif -
kernel/arch/arm32/src/machine_func.c
r3deb0155 rb4f43a1 43 43 #include <arch/mach/beagleboardxm/beagleboardxm.h> 44 44 #include <arch/mach/beaglebone/beaglebone.h> 45 #include <arch/mach/raspberrypi/raspberrypi.h>46 45 47 46 /** Pointer to machine_ops structure being used. */ … … 59 58 #elif defined(MACHINE_beaglebone) 60 59 machine_ops = &bbone_machine_ops; 61 #elif defined(MACHINE_raspberrypi)62 machine_ops = &raspberrypi_machine_ops;63 60 #else 64 61 #error Machine type not defined. -
kernel/arch/arm32/src/mm/page.c
r3deb0155 rb4f43a1 55 55 page_mapping_operations = &pt_mapping_operations; 56 56 57 #ifdef PROCESSOR_ARCH_armv658 /* Select ARMv6 and ARMv7 memory model */59 SCTLR_write(SCTLR_read() | SCTLR_EXTENDED_PT_EN_FLAG);60 #endif61 57 page_table_lock(AS_KERNEL, true); 62 58 -
kernel/genarch/Makefile.inc
r3deb0155 rb4f43a1 90 90 endif 91 91 92 ifeq ($(CONFIG_ PL011_UART),y)92 ifeq ($(CONFIG_ARM926_UART),y) 93 93 GENARCH_SOURCES += \ 94 genarch/src/drivers/ pl011/pl011.c94 genarch/src/drivers/arm926_uart/arm926_uart.c 95 95 endif 96 96 … … 118 118 GENARCH_SOURCES += \ 119 119 genarch/src/drivers/amdm37x/uart.c 120 endif121 122 ifeq ($(CONFIG_BCM2835_MAILBOX),y)123 GENARCH_SOURCES += \124 genarch/src/drivers/bcm2835/mbox.c125 120 endif 126 121
Note:
See TracChangeset
for help on using the changeset viewer.
