-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'rpi-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/…
…git/swarren/linux-rpi into next/soc ARM: add basic BCM2835 SoC and Raspberry Pi board support The BCM2835 is an ARM SoC from Broadcom. This patch adds very basic support for this SoC; enough to boot the system into an initrd with UART console, interrupt controller, timers, and a stub clock driver. Also provided is a similarly basic device tree for the Raspberry Pi Model B board. This series was written by Simon Arlott, Chris Boot, and Dom Cobley downstream, with reference to a Broadcom tree, and modified for upstream and submitted by Stephen Warren. * tag 'rpi-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi: MAINTAINERS: add an entry for the BCM2835 ARM sub-architecture ARM: bcm2835: instantiate console UART ARM: bcm2835: add stub clock driver ARM: bcm2835: add system timer ARM: bcm2835: add interrupt controller driver ARM: add infra-structure for BCM2835 and Raspberry Pi
- Loading branch information
Showing
29 changed files
with
1,031 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
Broadcom BCM2835 device tree bindings | ||
------------------------------------------- | ||
|
||
Boards with the BCM2835 SoC shall have the following properties: | ||
|
||
Required root node property: | ||
|
||
compatible = "brcm,bcm2835"; |
110 changes: 110 additions & 0 deletions
110
Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
BCM2835 Top-Level ("ARMCTRL") Interrupt Controller | ||
|
||
The BCM2835 contains a custom top-level interrupt controller, which supports | ||
72 interrupt sources using a 2-level register scheme. The interrupt | ||
controller, or the HW block containing it, is referred to occasionally | ||
as "armctrl" in the SoC documentation, hence naming of this binding. | ||
|
||
Required properties: | ||
|
||
- compatible : should be "brcm,bcm2835-armctrl-ic.txt" | ||
- reg : Specifies base physical address and size of the registers. | ||
- interrupt-controller : Identifies the node as an interrupt controller | ||
- #interrupt-cells : Specifies the number of cells needed to encode an | ||
interrupt source. The value shall be 2. | ||
|
||
The 1st cell is the interrupt bank; 0 for interrupts in the "IRQ basic | ||
pending" register, or 1/2 respectively for interrupts in the "IRQ pending | ||
1/2" register. | ||
|
||
The 2nd cell contains the interrupt number within the bank. Valid values | ||
are 0..7 for bank 0, and 0..31 for bank 1. | ||
|
||
The interrupt sources are as follows: | ||
|
||
Bank 0: | ||
0: ARM_TIMER | ||
1: ARM_MAILBOX | ||
2: ARM_DOORBELL_0 | ||
3: ARM_DOORBELL_1 | ||
4: VPU0_HALTED | ||
5: VPU1_HALTED | ||
6: ILLEGAL_TYPE0 | ||
7: ILLEGAL_TYPE1 | ||
|
||
Bank 1: | ||
0: TIMER0 | ||
1: TIMER1 | ||
2: TIMER2 | ||
3: TIMER3 | ||
4: CODEC0 | ||
5: CODEC1 | ||
6: CODEC2 | ||
7: VC_JPEG | ||
8: ISP | ||
9: VC_USB | ||
10: VC_3D | ||
11: TRANSPOSER | ||
12: MULTICORESYNC0 | ||
13: MULTICORESYNC1 | ||
14: MULTICORESYNC2 | ||
15: MULTICORESYNC3 | ||
16: DMA0 | ||
17: DMA1 | ||
18: VC_DMA2 | ||
19: VC_DMA3 | ||
20: DMA4 | ||
21: DMA5 | ||
22: DMA6 | ||
23: DMA7 | ||
24: DMA8 | ||
25: DMA9 | ||
26: DMA10 | ||
27: DMA11 | ||
28: DMA12 | ||
29: AUX | ||
30: ARM | ||
31: VPUDMA | ||
|
||
Bank 2: | ||
0: HOSTPORT | ||
1: VIDEOSCALER | ||
2: CCP2TX | ||
3: SDC | ||
4: DSI0 | ||
5: AVE | ||
6: CAM0 | ||
7: CAM1 | ||
8: HDMI0 | ||
9: HDMI1 | ||
10: PIXELVALVE1 | ||
11: I2CSPISLV | ||
12: DSI1 | ||
13: PWA0 | ||
14: PWA1 | ||
15: CPR | ||
16: SMI | ||
17: GPIO0 | ||
18: GPIO1 | ||
19: GPIO2 | ||
20: GPIO3 | ||
21: VC_I2C | ||
22: VC_SPI | ||
23: VC_I2SPCM | ||
24: VC_SDIO | ||
25: VC_UART | ||
26: SLIMBUS | ||
27: VEC | ||
28: CPG | ||
29: RNG | ||
30: VC_ARASANSDIO | ||
31: AVSPMON | ||
|
||
Example: | ||
|
||
intc: interrupt-controller { | ||
compatible = "brcm,bcm2835-armctrl-ic"; | ||
reg = <0x7e00b200 0x200>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
}; |
22 changes: 22 additions & 0 deletions
22
Documentation/devicetree/bindings/timer/brcm,bcm2835-system-timer.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
BCM2835 System Timer | ||
|
||
The System Timer peripheral provides four 32-bit timer channels and a | ||
single 64-bit free running counter. Each channel has an output compare | ||
register, which is compared against the 32 least significant bits of the | ||
free running counter values, and generates an interrupt. | ||
|
||
Required properties: | ||
|
||
- compatible : should be "brcm,bcm2835-system-timer.txt" | ||
- reg : Specifies base physical address and size of the registers. | ||
- interrupts : A list of 4 interrupt sinks; one per timer channel. | ||
- clock-frequency : The frequency of the clock that drives the counter, in Hz. | ||
|
||
Example: | ||
|
||
timer { | ||
compatible = "brcm,bcm2835-system-timer"; | ||
reg = <0x7e003000 0x1000>; | ||
interrupts = <1 0>, <1 1>, <1 2>, <1 3>; | ||
clock-frequency = <1000000>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
/dts-v1/; | ||
/memreserve/ 0x0c000000 0x04000000; | ||
/include/ "bcm2835.dtsi" | ||
|
||
/ { | ||
compatible = "raspberrypi,model-b", "brcm,bcm2835"; | ||
model = "Raspberry Pi Model B"; | ||
|
||
memory { | ||
reg = <0 0x10000000>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
/include/ "skeleton.dtsi" | ||
|
||
/ { | ||
compatible = "brcm,bcm2835"; | ||
model = "BCM2835"; | ||
interrupt-parent = <&intc>; | ||
|
||
chosen { | ||
bootargs = "earlyprintk console=ttyAMA0"; | ||
}; | ||
|
||
soc { | ||
compatible = "simple-bus"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
ranges = <0x7e000000 0x20000000 0x02000000>; | ||
|
||
timer { | ||
compatible = "brcm,bcm2835-system-timer"; | ||
reg = <0x7e003000 0x1000>; | ||
interrupts = <1 0>, <1 1>, <1 2>, <1 3>; | ||
clock-frequency = <1000000>; | ||
}; | ||
|
||
intc: interrupt-controller { | ||
compatible = "brcm,bcm2835-armctrl-ic"; | ||
reg = <0x7e00b200 0x200>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
}; | ||
|
||
uart@20201000 { | ||
compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; | ||
reg = <0x7e201000 0x1000>; | ||
interrupts = <2 25>; | ||
clock-frequency = <3000000>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
CONFIG_EXPERIMENTAL=y | ||
# CONFIG_LOCALVERSION_AUTO is not set | ||
CONFIG_SYSVIPC=y | ||
CONFIG_BSD_PROCESS_ACCT=y | ||
CONFIG_BSD_PROCESS_ACCT_V3=y | ||
CONFIG_FHANDLE=y | ||
CONFIG_NO_HZ=y | ||
CONFIG_HIGH_RES_TIMERS=y | ||
CONFIG_LOG_BUF_SHIFT=18 | ||
CONFIG_CGROUP_FREEZER=y | ||
CONFIG_CGROUP_DEVICE=y | ||
CONFIG_CPUSETS=y | ||
CONFIG_CGROUP_CPUACCT=y | ||
CONFIG_RESOURCE_COUNTERS=y | ||
CONFIG_CGROUP_PERF=y | ||
CONFIG_CFS_BANDWIDTH=y | ||
CONFIG_RT_GROUP_SCHED=y | ||
CONFIG_NAMESPACES=y | ||
CONFIG_SCHED_AUTOGROUP=y | ||
CONFIG_RELAY=y | ||
CONFIG_BLK_DEV_INITRD=y | ||
CONFIG_RD_BZIP2=y | ||
CONFIG_RD_LZMA=y | ||
CONFIG_RD_XZ=y | ||
CONFIG_RD_LZO=y | ||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
CONFIG_KALLSYMS_ALL=y | ||
CONFIG_EMBEDDED=y | ||
# CONFIG_COMPAT_BRK is not set | ||
CONFIG_PROFILING=y | ||
CONFIG_OPROFILE=y | ||
CONFIG_JUMP_LABEL=y | ||
# CONFIG_BLOCK is not set | ||
CONFIG_ARCH_BCM2835=y | ||
CONFIG_PREEMPT_VOLUNTARY=y | ||
CONFIG_AEABI=y | ||
CONFIG_COMPACTION=y | ||
CONFIG_KSM=y | ||
CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 | ||
CONFIG_CLEANCACHE=y | ||
CONFIG_SECCOMP=y | ||
CONFIG_CC_STACKPROTECTOR=y | ||
CONFIG_KEXEC=y | ||
CONFIG_CRASH_DUMP=y | ||
CONFIG_VFP=y | ||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
# CONFIG_SUSPEND is not set | ||
CONFIG_DEVTMPFS=y | ||
CONFIG_DEVTMPFS_MOUNT=y | ||
# CONFIG_STANDALONE is not set | ||
# CONFIG_INPUT_MOUSEDEV is not set | ||
# CONFIG_INPUT_KEYBOARD is not set | ||
# CONFIG_INPUT_MOUSE is not set | ||
# CONFIG_SERIO is not set | ||
# CONFIG_VT is not set | ||
# CONFIG_UNIX98_PTYS is not set | ||
# CONFIG_LEGACY_PTYS is not set | ||
# CONFIG_DEVKMEM is not set | ||
CONFIG_SERIAL_AMBA_PL011=y | ||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y | ||
CONFIG_TTY_PRINTK=y | ||
# CONFIG_HW_RANDOM is not set | ||
# CONFIG_HWMON is not set | ||
# CONFIG_USB_SUPPORT is not set | ||
# CONFIG_IOMMU_SUPPORT is not set | ||
# CONFIG_FILE_LOCKING is not set | ||
# CONFIG_DNOTIFY is not set | ||
# CONFIG_INOTIFY_USER is not set | ||
# CONFIG_PROC_FS is not set | ||
# CONFIG_SYSFS is not set | ||
# CONFIG_MISC_FILESYSTEMS is not set | ||
CONFIG_PRINTK_TIME=y | ||
# CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
# CONFIG_ENABLE_MUST_CHECK is not set | ||
CONFIG_UNUSED_SYMBOLS=y | ||
CONFIG_LOCKUP_DETECTOR=y | ||
CONFIG_DEBUG_INFO=y | ||
CONFIG_DEBUG_MEMORY_INIT=y | ||
CONFIG_BOOT_PRINTK_DELAY=y | ||
CONFIG_SCHED_TRACER=y | ||
CONFIG_STACK_TRACER=y | ||
CONFIG_FUNCTION_PROFILER=y | ||
CONFIG_DYNAMIC_DEBUG=y | ||
CONFIG_KGDB=y | ||
CONFIG_KGDB_KDB=y | ||
CONFIG_TEST_KSTRTOX=y | ||
CONFIG_STRICT_DEVMEM=y | ||
CONFIG_DEBUG_LL=y | ||
CONFIG_EARLY_PRINTK=y | ||
# CONFIG_XZ_DEC_X86 is not set | ||
# CONFIG_XZ_DEC_POWERPC is not set | ||
# CONFIG_XZ_DEC_IA64 is not set | ||
# CONFIG_XZ_DEC_ARM is not set | ||
# CONFIG_XZ_DEC_ARMTHUMB is not set | ||
# CONFIG_XZ_DEC_SPARC is not set |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
obj-y += bcm2835.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
zreladdr-y := 0x00008000 | ||
params_phys-y := 0x00000100 | ||
initrd_phys-y := 0x00800000 | ||
|
||
dtb-y += bcm2835-rpi-b.dtb |
Oops, something went wrong.