From 1df0438a5e579890ff94bcd145fb164e1d3ed25e Mon Sep 17 00:00:00 2001 From: blogic Date: Tue, 24 Jul 2012 20:39:17 +0000 Subject: [brcm2708] adds target used by rapsberry pi Add support for Raspberry Pi / brcm2708 / 2835 Signed-off-by: Ian Ridge git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32825 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/brcm2708/image/Config.in | 5 +++ target/linux/brcm2708/image/Makefile | 46 +++++++++++++++++++++++ target/linux/brcm2708/image/cmdline.txt | 1 + target/linux/brcm2708/image/gen_rpi_sdcard_img.sh | 29 ++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 target/linux/brcm2708/image/Config.in create mode 100644 target/linux/brcm2708/image/Makefile create mode 100644 target/linux/brcm2708/image/cmdline.txt create mode 100755 target/linux/brcm2708/image/gen_rpi_sdcard_img.sh (limited to 'target/linux/brcm2708/image') diff --git a/target/linux/brcm2708/image/Config.in b/target/linux/brcm2708/image/Config.in new file mode 100644 index 000000000..b9bea8647 --- /dev/null +++ b/target/linux/brcm2708/image/Config.in @@ -0,0 +1,5 @@ +config BRCM2708_SD_BOOT_PARTSIZE + int "Boot (SD Card) filesystem partition size (in MB)" + depends TARGET_brcm2708 + default 20 + diff --git a/target/linux/brcm2708/image/Makefile b/target/linux/brcm2708/image/Makefile new file mode 100644 index 000000000..a8dbef1b8 --- /dev/null +++ b/target/linux/brcm2708/image/Makefile @@ -0,0 +1,46 @@ +# +# Copyright (C) 2012 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/image.mk +include $(INCLUDE_DIR)/host.mk + +define Image/Prepare + cp $(LINUX_DIR)/arch/arm/boot/Image $(KDIR)/Image +endef + +FAT32_BLOCK_SIZE=1024 +FAT32_BLOCKS=$(shell echo $$(($(CONFIG_BRCM2708_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) + +define Image/Build/RaspberryPi + rm -f $(KDIR)/boot.img + + mkdosfs $(KDIR)/boot.img -C $(FAT32_BLOCKS) + # Raspberry Pi has no bootloader, instead the GPU loads and starts the kernel + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/arm128_start.elf :: + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/arm192_start.elf :: + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/arm224_start.elf :: + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/bootcode.bin :: + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/COPYING.linux :: + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/LICENCE.broadcom :: + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/loader.bin :: + mcopy -i $(KDIR)/boot.img $(BUILD_DIR)/brcm2708-gpu-fw-boot/arm$(2)_start.elf ::start.elf #Copy file for memory/gpu division + mcopy -i $(KDIR)/boot.img cmdline.txt :: + mcopy -i $(KDIR)/boot.img $(KDIR)/Image ::kernel.img # Copy OpenWrt built kernel + ./gen_rpi_sdcard_img.sh $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1)_$(2).img $(KDIR)/boot.img $(KDIR)/root.$(1) \ + $(CONFIG_BRCM2708_SD_BOOT_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) +endef + +define Image/Build + $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).img + $(CP) $(KDIR)/Image $(BIN_DIR)/$(IMG_PREFIX)-Image + + $(call Image/Build/RaspberryPi,$(1),128) + $(call Image/Build/RaspberryPi,$(1),192) + $(call Image/Build/RaspberryPi,$(1),224) +endef + +$(eval $(call BuildImage)) diff --git a/target/linux/brcm2708/image/cmdline.txt b/target/linux/brcm2708/image/cmdline.txt new file mode 100644 index 000000000..516f2706b --- /dev/null +++ b/target/linux/brcm2708/image/cmdline.txt @@ -0,0 +1 @@ +dwc_otg.lpm_enable=0 rpitestmode=1 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait diff --git a/target/linux/brcm2708/image/gen_rpi_sdcard_img.sh b/target/linux/brcm2708/image/gen_rpi_sdcard_img.sh new file mode 100755 index 000000000..c3287d28d --- /dev/null +++ b/target/linux/brcm2708/image/gen_rpi_sdcard_img.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +set -x +[ $# == 5 ] || { + echo "SYNTAX: $0 " + exit 1 +} + +OUTPUT="$1" +BOOTFS="$2" +ROOTFS="$3" +BOOTFSSIZE="$4" +ROOTFSSIZE="$5" + +head=4 +sect=63 + +set `ptgen -o $OUTPUT -h $head -s $sect -t c -p ${BOOTFSSIZE}M -t 83 -p ${ROOTFSSIZE}M` + +BOOTOFFSET="$(($1 / 512))" +BOOTSIZE="$(($2 / 512))" +ROOTFSOFFSET="$(($3 / 512))" +ROOTFSSIZE="$(($4 / 512))" + +dd bs=512 if="$BOOTFS" of="$OUTPUT" seek="$BOOTOFFSET" conv=notrunc +dd bs=512 if="$ROOTFS" of="$OUTPUT" seek="$ROOTFSOFFSET" conv=notrunc + + + -- cgit v1.2.3