├── .gitattributes ├── .gitignore ├── .gitmodules ├── Makefile ├── allwinner-tools ├── .gitattributes ├── README.md ├── awusb │ ├── Makefile │ ├── README │ └── awusb.c ├── bins │ ├── FileAddSum │ ├── mkbootimg │ ├── script │ ├── u_boot_env_gen │ ├── update_23 │ └── update_mbr ├── dragon │ ├── AwPluginVector.dll │ ├── ImageBuilder.dll │ ├── IniParasPlg.dll │ └── dragon ├── fsbuild │ ├── AwPluginVector.dll │ ├── IniParasPlg.dll │ ├── fsbuild │ └── fstool.dll └── livesuit │ ├── a10 │ ├── eFex │ │ ├── card │ │ │ ├── cardscript.fex │ │ │ ├── cardtool.fex │ │ │ ├── dlinfo.fex │ │ │ └── mbr.fex │ │ ├── split_xxxx.fex │ │ └── usb │ │ │ ├── HW_scan.axf │ │ │ ├── aultls32.fex │ │ │ ├── aultools.fex │ │ │ ├── card_HW_scan.axf │ │ │ ├── card_update_boot0.axf │ │ │ ├── card_update_boot1.axf │ │ │ ├── fed_card.axf │ │ │ ├── fed_nand.axf │ │ │ ├── fes.fex │ │ │ ├── fes_1-1.fex │ │ │ ├── fes_1-2.fex │ │ │ ├── fes_2.fex │ │ │ ├── fet_restore.axf │ │ │ ├── magic_cr_end.fex │ │ │ ├── magic_cr_start.fex │ │ │ ├── magic_de_end.fex │ │ │ ├── magic_de_start.fex │ │ │ ├── split_c43a2a92-a8ed-4f92-abdb-ca0d5d29666d.bin │ │ │ ├── tools.fex │ │ │ ├── update_boot0.axf │ │ │ └── update_boot1.axf │ ├── eGon │ │ └── storage_media │ │ │ ├── nand │ │ │ ├── boot0.bin │ │ │ └── boot1.bin │ │ │ ├── sdcard │ │ │ ├── boot0.bin │ │ │ └── boot1.bin │ │ │ └── spinor │ │ │ └── boot0.bin │ └── wboot │ │ ├── bootfs.ini │ │ ├── bootfs │ │ ├── .gitignore │ │ ├── boot.axf │ │ ├── boot.ini │ │ ├── drv_de.drv │ │ ├── font24.sft │ │ ├── font32.sft │ │ ├── linux │ │ │ ├── linux.bmp │ │ │ ├── linux.ini │ │ │ └── u-boot.bin │ │ ├── os_show │ │ │ ├── bat0.bmp │ │ │ ├── bat1.bmp │ │ │ ├── bat10.bmp │ │ │ ├── bat2.bmp │ │ │ ├── bat3.bmp │ │ │ ├── bat4.bmp │ │ │ ├── bat5.bmp │ │ │ ├── bat6.bmp │ │ │ ├── bat7.bmp │ │ │ ├── bat8.bmp │ │ │ ├── bat9.bmp │ │ │ ├── battery.bmp │ │ │ ├── bempty.bmp │ │ │ ├── empty.bmp │ │ │ ├── full.bmp │ │ │ ├── head.bmp │ │ │ ├── linux1.bmp │ │ │ ├── linux2.bmp │ │ │ ├── low_pwr.bmp │ │ │ ├── melis1.bmp │ │ │ ├── melis2.bmp │ │ │ ├── startup.bmp │ │ │ ├── tail.bmp │ │ │ ├── wince1.bmp │ │ │ └── wince2.bmp │ │ ├── sprite.axf │ │ └── sprite │ │ │ └── sprite.ini │ │ └── diskfs.fex │ ├── a13 │ ├── eFex │ │ ├── card │ │ │ ├── cardscript.fex │ │ │ ├── cardtool.fex │ │ │ ├── dlinfo.fex │ │ │ └── mbr.fex │ │ ├── split_xxxx.fex │ │ └── usb │ │ │ ├── HW_scan.axf │ │ │ ├── aultls32.fex │ │ │ ├── aultools.fex │ │ │ ├── card_HW_scan.axf │ │ │ ├── card_update_boot0.axf │ │ │ ├── card_update_boot1.axf │ │ │ ├── fed_card.axf │ │ │ ├── fed_nand.axf │ │ │ ├── fes.fex │ │ │ ├── fes_1-1.fex │ │ │ ├── fes_1-2.fex │ │ │ ├── fes_2.fex │ │ │ ├── fet_restore.axf │ │ │ ├── magic_cr_end.fex │ │ │ ├── magic_cr_start.fex │ │ │ ├── magic_de_end.fex │ │ │ ├── magic_de_start.fex │ │ │ ├── split_c43a2a92-a8ed-4f92-abdb-ca0d5d29666d.bin │ │ │ ├── tools.fex │ │ │ ├── update_boot0.axf │ │ │ └── update_boot1.axf │ ├── eGon │ │ └── storage_media │ │ │ ├── nand │ │ │ ├── boot0.bin │ │ │ └── boot1.bin │ │ │ ├── sdcard │ │ │ ├── boot0.bin │ │ │ └── boot1.bin │ │ │ └── spinor │ │ │ └── boot0.bin │ └── wboot │ │ ├── bootfs.ini │ │ ├── bootfs │ │ ├── boot.axf │ │ ├── boot.ini │ │ ├── drv_de.drv │ │ ├── font24.sft │ │ ├── font32.sft │ │ ├── linux │ │ │ ├── linux.bmp │ │ │ ├── linux.ini │ │ │ └── u-boot.bin │ │ ├── os_show │ │ │ ├── bat0.bmp │ │ │ ├── bat1.bmp │ │ │ ├── bat10.bmp │ │ │ ├── bat2.bmp │ │ │ ├── bat3.bmp │ │ │ ├── bat4.bmp │ │ │ ├── bat5.bmp │ │ │ ├── bat6.bmp │ │ │ ├── bat7.bmp │ │ │ ├── bat8.bmp │ │ │ ├── bat9.bmp │ │ │ ├── battery.bmp │ │ │ ├── bempty.bmp │ │ │ ├── empty.bmp │ │ │ ├── full.bmp │ │ │ ├── head.bmp │ │ │ ├── linux1.bmp │ │ │ ├── linux2.bmp │ │ │ ├── low_pwr.bmp │ │ │ ├── melis1.bmp │ │ │ ├── melis2.bmp │ │ │ ├── startup.bmp │ │ │ ├── tail.bmp │ │ │ ├── wince1.bmp │ │ │ └── wince2.bmp │ │ ├── sprite.axf │ │ └── sprite │ │ │ └── sprite.ini │ │ └── diskfs.fex │ ├── a20 │ ├── default │ │ ├── env.cfg │ │ ├── image.cfg │ │ └── sys_partition.fex │ ├── eDragonEx │ │ ├── AwPluginVector.dll │ │ ├── FileAddSum │ │ ├── FileAddSum.exe │ │ ├── ImageBuilder.dll │ │ ├── IniParasPlg.dll │ │ ├── IniParasPlgex.dll │ │ ├── dragon │ │ └── plgvector.dll │ ├── eFex │ │ ├── card │ │ │ ├── cardscript.fex │ │ │ ├── cardtool-uboot.fex │ │ │ └── cardtool.fex │ │ ├── split_xxxx.fex │ │ └── usb │ │ │ ├── aultls32.fex │ │ │ ├── aultools.fex │ │ │ ├── card_HW_scan.axf │ │ │ ├── card_update_boot0.axf │ │ │ ├── card_update_boot1.axf │ │ │ ├── fed_card.axf │ │ │ ├── fed_nand.axf │ │ │ ├── fes.fex │ │ │ ├── fes_1-1.fex │ │ │ ├── fes_1-2.fex │ │ │ ├── fes_2.fex │ │ │ ├── fet_restore.axf │ │ │ ├── hw_scan.axf │ │ │ ├── magic_cr_end.fex │ │ │ ├── magic_cr_start.fex │ │ │ ├── magic_de_end.fex │ │ │ ├── magic_de_start.fex │ │ │ ├── toolsb.fex │ │ │ ├── update_boot0.axf │ │ │ └── update_boot1.axf │ ├── eGon │ │ ├── boot0_nand.bin │ │ ├── boot0_sdcard.bin │ │ ├── boot1_nand.bin │ │ └── boot1_sdcard.bin │ ├── fsbuild200 │ │ ├── AwPluginVector.dll │ │ ├── FSProcess.dll │ │ ├── IniParasPlg.dll │ │ ├── RAMPart.dll │ │ ├── ScriptParser.dll │ │ ├── config.dll │ │ ├── fsbuild │ │ ├── fsbuild.exe │ │ ├── fstool.dll │ │ ├── readme.txt │ │ └── split_c43a2a92-a8ed-4f92-abdb-ca0d5d29666d.bin │ ├── mod_update │ │ ├── script │ │ ├── script_parse │ │ ├── signature │ │ ├── simg │ │ ├── u_boot_env_gen │ │ ├── update_boot0 │ │ ├── update_boot1 │ │ └── update_mbr │ └── wboot │ │ ├── bootfs.ini │ │ └── bootfs │ │ ├── boot.axf │ │ ├── boot.ini │ │ ├── boot_lvds.axf │ │ ├── boot_signature.axf │ │ ├── drv_de.drv │ │ ├── drv_de_lvds.drv │ │ ├── drv_hdmi.drv │ │ ├── font24.sft │ │ ├── font32.sft │ │ ├── linux │ │ ├── linux.bmp │ │ ├── linux.ini │ │ └── u-boot.bin │ │ ├── os_show │ │ ├── bat0.bmp │ │ ├── bat1.bmp │ │ ├── bat10.bmp │ │ ├── bat2.bmp │ │ ├── bat3.bmp │ │ ├── bat4.bmp │ │ ├── bat5.bmp │ │ ├── bat6.bmp │ │ ├── bat7.bmp │ │ ├── bat8.bmp │ │ ├── bat9.bmp │ │ ├── battery.bmp │ │ ├── bempty.bmp │ │ ├── bootlogo.bmp │ │ ├── empty.bmp │ │ ├── full.bmp │ │ ├── head.bmp │ │ ├── linux1.bmp │ │ ├── linux2.bmp │ │ ├── low_pwr.bmp │ │ ├── melis1.bmp │ │ ├── melis2.bmp │ │ ├── startup.bmp │ │ ├── tail.bmp │ │ ├── wince1.bmp │ │ └── wince2.bmp │ │ ├── prvt.axf │ │ └── sprite.axf │ └── default │ ├── env_android.cfg │ ├── env_linux.cfg │ ├── image_android.cfg │ ├── image_linux.cfg │ ├── sys_config_android.fex │ └── sys_config_linux.fex ├── apply_patch.sh ├── chosen_board.mk ├── configure ├── patch ├── linux-sunxi │ ├── arch │ │ └── arm │ │ │ ├── boot │ │ │ └── compressed │ │ │ │ └── head.S │ │ │ ├── configs │ │ │ ├── pcduino3_nano_defconfig │ │ │ ├── pcduino3b_lvds_defconfig │ │ │ ├── sun4i_defconfig │ │ │ └── sun7i_defconfig │ │ │ └── mach-sun7i │ │ │ └── include │ │ │ └── mach │ │ │ ├── dma.h │ │ │ └── spi.h │ ├── drivers │ │ ├── Kconfig │ │ ├── hardwarelib │ │ │ └── Kconfig │ │ ├── i2c │ │ │ └── busses │ │ │ │ └── i2c-sunxi.c │ │ ├── media │ │ │ └── video │ │ │ │ ├── sun4i │ │ │ │ └── sun4i_avs.c │ │ │ │ └── sun4i_csi │ │ │ │ ├── Kconfig │ │ │ │ └── device │ │ │ │ ├── Makefile │ │ │ │ ├── gc0308.c │ │ │ │ └── gc2035.c │ │ ├── net │ │ │ ├── ethernet │ │ │ │ └── allwinner │ │ │ │ │ └── gmac │ │ │ │ │ └── gmac_core.c │ │ │ └── wireless │ │ │ │ └── rtl8188eu │ │ │ │ └── hal │ │ │ │ └── rtl8188e │ │ │ │ └── usb │ │ │ │ └── rtl8188eu_led.c │ │ ├── spi │ │ │ ├── Kconfig │ │ │ ├── Makefile │ │ │ ├── spi_sunxi.c │ │ │ └── spidev.c │ │ ├── tty │ │ │ └── serial │ │ │ │ └── 8250 │ │ │ │ └── 8250.c │ │ ├── usb │ │ │ ├── gadget │ │ │ │ └── Kconfig │ │ │ └── sunxi_usb │ │ │ │ ├── Kconfig │ │ │ │ ├── udc │ │ │ │ └── sw_udc.c │ │ │ │ └── usbc │ │ │ │ └── usbc_phy.c │ │ └── video │ │ │ ├── console │ │ │ └── fbcon.c │ │ │ └── sunxi │ │ │ ├── disp │ │ │ ├── dev_disp.c │ │ │ ├── dev_fb.c │ │ │ └── disp_lcd.c │ │ │ ├── hdmi │ │ │ ├── dev_hdmi.c │ │ │ ├── drv_hdmi.c │ │ │ ├── hdmi_core.c │ │ │ ├── hdmi_core.h │ │ │ ├── hdmi_edid.c │ │ │ └── hdmi_i2c.c │ │ │ └── lcd │ │ │ └── dev_lcd.c │ ├── include │ │ ├── linux │ │ │ └── spi │ │ │ │ ├── spi.h │ │ │ │ └── spidev.h │ │ └── video │ │ │ └── sunxi_disp_ioctl.h │ ├── make_kernel_patch.sh │ ├── net │ │ └── rfkill │ │ │ └── core.c │ ├── rootfs │ │ ├── rootfs.cpio.xz │ │ └── sun7i_rootfs.cpio.xz │ ├── scripts │ │ └── setlocalversion │ └── usr │ │ └── initramfs_data.cpio.xz └── u-boot-sunxi │ ├── Makefile │ ├── board │ └── sunxi │ │ ├── Makefile │ │ └── dram_pcduino3.c │ ├── boards.cfg │ └── make_uboot_patch.sh ├── rootfs.img ├── rootfs └── debian-ubuntu │ └── etc │ ├── modprobe.d │ └── 8192cu.conf │ └── modules ├── scripts ├── copy_pack_tools.sh ├── mk_android.sh ├── mk_ext4_rootfs.sh ├── mk_hwpack.sh ├── mk_livesuit_img.sh └── sunxi-media-create.sh └── sunxi-boards ├── .gitattributes └── sys_config ├── a10 └── pcduino.fex └── a20 ├── pcduino3.fex ├── pcduino3_lvds.fex ├── pcduino3_nano.fex └── pcduino3b_lvds.fex /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | *.sh text eol=lf 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /android/ 2 | /build/ 3 | /output/ 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "u-boot-sunxi"] 2 | path = u-boot-sunxi 3 | url = https://github.com/linux-sunxi/u-boot-sunxi.git 4 | [submodule "linux-sunxi"] 5 | path = linux-sunxi 6 | url = https://github.com/linux-sunxi/linux-sunxi.git 7 | [submodule "cedarx-libs"] 8 | path = cedarx-libs 9 | url = https://github.com/linux-sunxi/cedarx-libs.git 10 | [submodule "sunxi-tools"] 11 | path = sunxi-tools 12 | url = https://github.com/linux-sunxi/sunxi-tools.git 13 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all clean help 2 | .PHONY: tools u-boot linux libs hwpack hwpack-install 3 | .PHONY: patch linux-config livesuit android 4 | 5 | SUDO=sudo 6 | CROSS_COMPILE=arm-linux-gnueabihf- 7 | OUTPUT_DIR=$(CURDIR)/output 8 | BUILD_PATH=$(CURDIR)/build 9 | ROOTFS=$(CURDIR)/rootfs.img 10 | Q=@ 11 | J=$(shell expr `grep ^processor /proc/cpuinfo | wc -l` \* 2) 12 | 13 | include chosen_board.mk 14 | 15 | DATE=$(shell date +"%4Y%2m%2d") 16 | 17 | HWPACK=$(OUTPUT_DIR)/${BOARD}_${SOC}_hwpack_${DATE}.tar.xz 18 | U_O_PATH=$(BUILD_PATH)/$(UBOOT_CONFIG)-u-boot 19 | K_O_PATH=$(BUILD_PATH)/$(KERNEL_CONFIG)-linux 20 | U_CONFIG_H=$(U_O_PATH)/include/config.h 21 | K_DOT_CONFIG=$(K_O_PATH)/.config 22 | 23 | all: patch hwpack livesuit 24 | 25 | clean: 26 | rm -rf $(BUILD_PATH) 27 | 28 | ## patch 29 | patch: linux-sunxi/.git u-boot-sunxi/.git 30 | $(Q)$(CURDIR)/apply_patch.sh 31 | $(Q)rm -f $(K_DOT_CONFIG) 32 | 33 | ## tools 34 | tools: sunxi-tools/.git 35 | $(Q)$(MAKE) -C sunxi-tools 36 | 37 | ## u-boot 38 | $(U_CONFIG_H): u-boot-sunxi/.git 39 | $(Q)mkdir -p $(U_O_PATH) 40 | $(Q)$(MAKE) -C u-boot-sunxi $(UBOOT_CONFIG)_config O=$(U_O_PATH) CROSS_COMPILE=$(CROSS_COMPILE) -j$J 41 | 42 | u-boot: $(U_CONFIG_H) 43 | $(Q)$(MAKE) -C u-boot-sunxi all O=$(U_O_PATH) CROSS_COMPILE=$(CROSS_COMPILE) -j$J 44 | 45 | ## linux 46 | $(K_DOT_CONFIG): linux-sunxi/.git 47 | $(Q)mkdir -p $(K_O_PATH) 48 | $(Q)$(MAKE) -C linux-sunxi O=$(K_O_PATH) ARCH=arm $(KERNEL_CONFIG) 49 | 50 | linux: $(K_DOT_CONFIG) 51 | $(Q)$(MAKE) -C linux-sunxi O=$(K_O_PATH) ARCH=arm oldconfig 52 | $(Q)$(MAKE) -C linux-sunxi O=$(K_O_PATH) ARCH=arm CROSS_COMPILE=${CROSS_COMPILE} -j$J INSTALL_MOD_PATH=output uImage modules 53 | $(Q)$(MAKE) -C linux-sunxi O=$(K_O_PATH) ARCH=arm CROSS_COMPILE=${CROSS_COMPILE} -j$J INSTALL_MOD_PATH=output modules_install 54 | cd $(K_O_PATH) && ${CROSS_COMPILE}objcopy -R .note.gnu.build-id -S -O binary vmlinux bImage 55 | 56 | linux-config: $(K_DOT_CONFIG) 57 | $(Q)$(MAKE) -C linux-sunxi O=$(K_O_PATH) ARCH=arm menuconfig 58 | 59 | ## script.bin 60 | script.bin: tools 61 | $(Q)mkdir -p $(OUTPUT_DIR) 62 | $(Q)sunxi-tools/fex2bin sunxi-boards/sys_config/$(SOC)/$(BOARD).fex > $(BUILD_PATH)/$(BOARD).bin 63 | 64 | ## boot.scr 65 | boot.scr: 66 | $(Q)mkdir -p $(OUTPUT_DIR) 67 | $(Q)[ ! -s boot.cmd ] || mkimage -A arm -O u-boot -T script -C none -n "boot" -d boot.cmd $(BUILD_PATH)/boot.scr 68 | 69 | ## hwpack 70 | $(HWPACK): u-boot boot.scr script.bin linux libs 71 | $(Q)scripts/mk_hwpack.sh $@ 72 | 73 | hwpack: $(HWPACK) 74 | 75 | ## livesuit 76 | rootfs.ext4: $(ROOTFS) 77 | $(Q)scripts/mk_ext4_rootfs.sh $(ROOTFS) rootfs.ext4 78 | 79 | livesuit: 80 | $(Q)scripts/mk_livesuit_img.sh -R $(ROOTFS) 81 | 82 | ## android 83 | #android-%: 84 | # $(Q)scripts/mk_android.sh $* 85 | 86 | #android: android-build 87 | # 88 | android: 89 | $(Q)@echo "android is not supported yet!" 90 | 91 | ## hwpack-install 92 | hwpack-install: $(HWPACK) 93 | ifndef SD_CARD 94 | $(Q)echo "Define SD_CARD variable" 95 | $(Q)false 96 | else 97 | $(Q)$(SUDO) scripts/sunxi-media-create.sh $(SD_CARD) $(HWPACK) $(ROOTFS) 98 | endif 99 | 100 | libs: cedarx-libs/.git 101 | 102 | update: 103 | $(Q)git pull 104 | # $(Q)git stash 105 | # $(Q)git pull --rebase 106 | # $(Q)git submodule -q init 107 | # $(Q)git submodule -q foreach git stash save -q --include-untracked "make update stash" 108 | # -$(Q)git submodule -q foreach git fetch -q 109 | # -$(Q)git submodule -q foreach "git rebase origin HEAD || :" 110 | # -$(Q)git submodule -q foreach "git stash pop -q || :" 111 | # -$(Q)git stash pop -q 112 | # $(Q)git submodule status 113 | 114 | %/.git: 115 | $(Q)git submodule init 116 | $(Q)git submodule update $* 117 | 118 | help: 119 | @echo "" 120 | @echo "Usage:" 121 | @echo " make hwpack - Default 'make'" 122 | @echo " make hwpack-install - Builds and installs hwpack and optional rootfs to sdcard" 123 | @echo " Arguments:" 124 | @echo " SD_CARD= - Target (ie. /dev/sdx)" 125 | @echo " ROOTFS= - Source rootfs (ie. rootfs.tar.gz)" 126 | @echo "" 127 | # @echo " make android - **Experimental**" 128 | @echo " make livesuit" 129 | @echo " make clean" 130 | @echo " make update" 131 | @echo "" 132 | @echo "Optional targets:" 133 | @echo " make linux - Builds linux kernel" 134 | @echo " make linux-config - Menuconfig" 135 | @echo " make u-boot - Builds u-boot" 136 | @echo " make libs - Download libs" 137 | @echo "" 138 | 139 | -------------------------------------------------------------------------------- /allwinner-tools/.gitattributes: -------------------------------------------------------------------------------- 1 | *.ini text eol=crlf 2 | *.cfg text eol=lf 3 | livesuit/default/*.fex text eol=crlf 4 | -------------------------------------------------------------------------------- /allwinner-tools/README.md: -------------------------------------------------------------------------------- 1 | allwinner-tools 2 | =============== 3 | 4 | awusb 5 | ===== 6 | Allwinner's USB driver used by proprietary LiveSuit for Linux. 7 | -------------------------------------------------------------------------------- /allwinner-tools/awusb/Makefile: -------------------------------------------------------------------------------- 1 | obj-m := awusb.o 2 | KDIR := /lib/modules/$(shell uname -r)/build 3 | PWD := $(shell pwd) 4 | 5 | default: 6 | $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules 7 | clean: 8 | $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean 9 | rm -rf Module.markers module.order module.sysvers 10 | 11 | -------------------------------------------------------------------------------- /allwinner-tools/awusb/README: -------------------------------------------------------------------------------- 1 | USB driver for A10 based devices. This driver is used only for FEL mode by LiveSuit for linux. 2 | -------------------------------------------------------------------------------- /allwinner-tools/bins/FileAddSum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/bins/FileAddSum -------------------------------------------------------------------------------- /allwinner-tools/bins/mkbootimg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/bins/mkbootimg -------------------------------------------------------------------------------- /allwinner-tools/bins/script: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/bins/script -------------------------------------------------------------------------------- /allwinner-tools/bins/u_boot_env_gen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/bins/u_boot_env_gen -------------------------------------------------------------------------------- /allwinner-tools/bins/update_23: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/bins/update_23 -------------------------------------------------------------------------------- /allwinner-tools/bins/update_mbr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/bins/update_mbr -------------------------------------------------------------------------------- /allwinner-tools/dragon/AwPluginVector.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/dragon/AwPluginVector.dll -------------------------------------------------------------------------------- /allwinner-tools/dragon/ImageBuilder.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/dragon/ImageBuilder.dll -------------------------------------------------------------------------------- /allwinner-tools/dragon/IniParasPlg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/dragon/IniParasPlg.dll -------------------------------------------------------------------------------- /allwinner-tools/dragon/dragon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/dragon/dragon -------------------------------------------------------------------------------- /allwinner-tools/fsbuild/AwPluginVector.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/fsbuild/AwPluginVector.dll -------------------------------------------------------------------------------- /allwinner-tools/fsbuild/IniParasPlg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/fsbuild/IniParasPlg.dll -------------------------------------------------------------------------------- /allwinner-tools/fsbuild/fsbuild: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/fsbuild/fsbuild -------------------------------------------------------------------------------- /allwinner-tools/fsbuild/fstool.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/fsbuild/fstool.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/card/cardscript.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/card/cardscript.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/card/cardtool.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/card/cardtool.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/card/dlinfo.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/card/dlinfo.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/card/mbr.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/card/mbr.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/split_xxxx.fex: -------------------------------------------------------------------------------- 1 | a1sp9maKde37ee6c-6dc4-4d74-86f0-db32116efb53e0e40ccf-7a66-406b-88c3-415b4a62a8f7777622ab-6bd0-464f-9da5-4cc203e855ea8ce5671f-e8b5-442e-9300-2ee6836c538aabf5f481-c961-4895-8245-631f74851d0c2bbb4229-55a8-4929-a165-3f406f0ee441ab5d09a9-c4dc-44bb-a175-cfb7c978a062329ea51e-1ddc-44ff-ac09-9ef7b64e0c52a712e47d-13f7-4490-9fea-bdcd587b8a4a5ed4d4e6-0ba3-45c5-a778-3232a42d4d960a9b7466-d7b3-4087-b8ff-c51763b852a50cd78bb6-a6d5-43a8-8661-fb91abd346433e8a86ee-711e-49c1-ad54-b59dd01fe513e22b0d8b-647f-4417-a115-9806c5d64eec -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/HW_scan.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/HW_scan.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/aultls32.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/aultls32.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/aultools.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/aultools.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/card_HW_scan.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/card_HW_scan.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/card_update_boot0.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/card_update_boot0.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/card_update_boot1.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/card_update_boot1.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/fed_card.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/fed_card.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/fed_nand.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/fed_nand.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/fes.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/fes.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/fes_1-1.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/fes_1-1.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/fes_1-2.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/fes_1-2.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/fes_2.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/fes_2.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/fet_restore.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/fet_restore.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/magic_cr_end.fex: -------------------------------------------------------------------------------- 1 | 7946A691FA1E4f3a9DDCD0C5828AEFD8BEBD1D2BF61B4b3eB54659D9B68E7A8E2C5940B77A624a3fA773C1D55256EA0D2A31F0F8D44543b38638364DD102BD97 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/magic_cr_start.fex: -------------------------------------------------------------------------------- 1 | 52332CE123644369A4B275509311AD04048DF9BD33974692B70C2CAFBAD9856D57CD78E7130645df871241D1AE7424904BA9FF978D41460c8E953E6D0CD9C1C7 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/magic_de_end.fex: -------------------------------------------------------------------------------- 1 | B7B71401B56C417c9AB59231F7B9E8B9EDB98F0099184ff5910B0AC556373851ACBFAB9F7FF049caBF0829D2CE3A6F421787E0A426EA48c6BF912FA2785F10D0 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/magic_de_start.fex: -------------------------------------------------------------------------------- 1 | 7D1EA8F5D171421cA90F9B559F68B003D65B145CB9AA47dfB8210A48F8D14641753CCEC0B13C4778BC0479570E993355F276F25ACBDE4de0890E7F52E0AE44CC -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/split_c43a2a92-a8ed-4f92-abdb-ca0d5d29666d.bin: -------------------------------------------------------------------------------- 1 | a1sp9maKde37ee6c-6dc4-4d74-86f0-db32116efb53e0e40ccf-7a66-406b-88c3-415b4a62a8f7777622ab-6bd0-464f-9da5-4cc203e855ea8ce5671f-e8b5-442e-9300-2ee6836c538aabf5f481-c961-4895-8245-631f74851d0c2bbb4229-55a8-4929-a165-3f406f0ee441ab5d09a9-c4dc-44bb-a175-cfb7c978a062329ea51e-1ddc-44ff-ac09-9ef7b64e0c52a712e47d-13f7-4490-9fea-bdcd587b8a4a5ed4d4e6-0ba3-45c5-a778-3232a42d4d960a9b7466-d7b3-4087-b8ff-c51763b852a50cd78bb6-a6d5-43a8-8661-fb91abd346433e8a86ee-711e-49c1-ad54-b59dd01fe513e22b0d8b-647f-4417-a115-9806c5d64eec -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/tools.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/tools.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/update_boot0.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/update_boot0.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eFex/usb/update_boot1.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eFex/usb/update_boot1.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eGon/storage_media/nand/boot0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eGon/storage_media/nand/boot0.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eGon/storage_media/nand/boot1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eGon/storage_media/nand/boot1.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eGon/storage_media/sdcard/boot0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eGon/storage_media/sdcard/boot0.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eGon/storage_media/sdcard/boot1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eGon/storage_media/sdcard/boot1.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/eGon/storage_media/spinor/boot0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/eGon/storage_media/spinor/boot0.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs.ini -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | 3 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/boot.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/boot.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/boot.ini: -------------------------------------------------------------------------------- 1 | [system] 2 | start_os_name = linux 3 | timeout = -1 4 | display_device= 0 5 | display_mode = 0 6 | erase_flash=1 7 | 8 | 9 | [linux] 10 | 11 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/drv_de.drv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/drv_de.drv -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/font24.sft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/font24.sft -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/font32.sft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/font32.sft -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/linux/linux.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/linux/linux.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/linux/linux.ini: -------------------------------------------------------------------------------- 1 | [segment] 2 | img_name = c:\linux\u-boot.bin 3 | img_size = 0x80000 4 | img_base = 0x4A000000 5 | 6 | [script_info] 7 | script_base = 0x43000000 8 | script_size = 0x10000 9 | 10 | [logo_info] 11 | logo_name = c:\linux\linux.bmp 12 | logo_show = 0 13 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/linux/u-boot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/linux/u-boot.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat0.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat0.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat10.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat10.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat3.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat4.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat4.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat5.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat5.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat6.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat6.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat7.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat7.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat8.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat8.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat9.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bat9.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/battery.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/battery.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bempty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/bempty.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/empty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/empty.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/full.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/full.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/head.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/head.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/linux1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/linux1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/linux2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/linux2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/low_pwr.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/low_pwr.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/melis1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/melis1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/melis2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/melis2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/startup.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/startup.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/tail.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/tail.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/wince1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/wince1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/os_show/wince2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/os_show/wince2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/sprite.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a10/wboot/bootfs/sprite.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/bootfs/sprite/sprite.ini: -------------------------------------------------------------------------------- 1 | [system] 2 | display_device= -1 3 | display_mode = 0 4 | erase_flash = 1 5 | 6 | 7 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a10/wboot/diskfs.fex: -------------------------------------------------------------------------------- 1 | datafs 2 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/card/cardscript.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/card/cardscript.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/card/cardtool.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/card/cardtool.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/card/dlinfo.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/card/dlinfo.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/card/mbr.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/card/mbr.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/split_xxxx.fex: -------------------------------------------------------------------------------- 1 | a1sp9maKde37ee6c-6dc4-4d74-86f0-db32116efb53e0e40ccf-7a66-406b-88c3-415b4a62a8f7777622ab-6bd0-464f-9da5-4cc203e855ea8ce5671f-e8b5-442e-9300-2ee6836c538aabf5f481-c961-4895-8245-631f74851d0c2bbb4229-55a8-4929-a165-3f406f0ee441ab5d09a9-c4dc-44bb-a175-cfb7c978a062329ea51e-1ddc-44ff-ac09-9ef7b64e0c52a712e47d-13f7-4490-9fea-bdcd587b8a4a5ed4d4e6-0ba3-45c5-a778-3232a42d4d960a9b7466-d7b3-4087-b8ff-c51763b852a50cd78bb6-a6d5-43a8-8661-fb91abd346433e8a86ee-711e-49c1-ad54-b59dd01fe513e22b0d8b-647f-4417-a115-9806c5d64eec -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/HW_scan.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/HW_scan.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/aultls32.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/aultls32.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/aultools.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/aultools.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/card_HW_scan.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/card_HW_scan.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/card_update_boot0.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/card_update_boot0.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/card_update_boot1.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/card_update_boot1.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/fed_card.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/fed_card.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/fed_nand.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/fed_nand.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/fes.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/fes.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/fes_1-1.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/fes_1-1.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/fes_1-2.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/fes_1-2.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/fes_2.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/fes_2.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/fet_restore.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/fet_restore.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/magic_cr_end.fex: -------------------------------------------------------------------------------- 1 | 7946A691FA1E4f3a9DDCD0C5828AEFD8BEBD1D2BF61B4b3eB54659D9B68E7A8E2C5940B77A624a3fA773C1D55256EA0D2A31F0F8D44543b38638364DD102BD97 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/magic_cr_start.fex: -------------------------------------------------------------------------------- 1 | 52332CE123644369A4B275509311AD04048DF9BD33974692B70C2CAFBAD9856D57CD78E7130645df871241D1AE7424904BA9FF978D41460c8E953E6D0CD9C1C7 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/magic_de_end.fex: -------------------------------------------------------------------------------- 1 | B7B71401B56C417c9AB59231F7B9E8B9EDB98F0099184ff5910B0AC556373851ACBFAB9F7FF049caBF0829D2CE3A6F421787E0A426EA48c6BF912FA2785F10D0 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/magic_de_start.fex: -------------------------------------------------------------------------------- 1 | 7D1EA8F5D171421cA90F9B559F68B003D65B145CB9AA47dfB8210A48F8D14641753CCEC0B13C4778BC0479570E993355F276F25ACBDE4de0890E7F52E0AE44CC -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/split_c43a2a92-a8ed-4f92-abdb-ca0d5d29666d.bin: -------------------------------------------------------------------------------- 1 | a1sp9maKde37ee6c-6dc4-4d74-86f0-db32116efb53e0e40ccf-7a66-406b-88c3-415b4a62a8f7777622ab-6bd0-464f-9da5-4cc203e855ea8ce5671f-e8b5-442e-9300-2ee6836c538aabf5f481-c961-4895-8245-631f74851d0c2bbb4229-55a8-4929-a165-3f406f0ee441ab5d09a9-c4dc-44bb-a175-cfb7c978a062329ea51e-1ddc-44ff-ac09-9ef7b64e0c52a712e47d-13f7-4490-9fea-bdcd587b8a4a5ed4d4e6-0ba3-45c5-a778-3232a42d4d960a9b7466-d7b3-4087-b8ff-c51763b852a50cd78bb6-a6d5-43a8-8661-fb91abd346433e8a86ee-711e-49c1-ad54-b59dd01fe513e22b0d8b-647f-4417-a115-9806c5d64eec -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/tools.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/tools.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/update_boot0.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/update_boot0.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eFex/usb/update_boot1.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eFex/usb/update_boot1.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eGon/storage_media/nand/boot0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eGon/storage_media/nand/boot0.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eGon/storage_media/nand/boot1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eGon/storage_media/nand/boot1.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eGon/storage_media/sdcard/boot0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eGon/storage_media/sdcard/boot0.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eGon/storage_media/sdcard/boot1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eGon/storage_media/sdcard/boot1.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/eGon/storage_media/spinor/boot0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/eGon/storage_media/spinor/boot0.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs.ini -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/boot.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/boot.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/boot.ini: -------------------------------------------------------------------------------- 1 | [system] 2 | start_os_name = linux 3 | timeout = -1 4 | display_device= 0 5 | display_mode = 0 6 | 7 | 8 | [linux] 9 | 10 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/drv_de.drv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/drv_de.drv -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/font24.sft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/font24.sft -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/font32.sft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/font32.sft -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/linux/linux.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/linux/linux.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/linux/linux.ini: -------------------------------------------------------------------------------- 1 | [segment] 2 | img_name = c:\linux\u-boot.bin 3 | img_size = 0x80000 4 | img_base = 0x4A000000 5 | 6 | [script_info] 7 | script_base = 0x43000000 8 | script_size = 0x10000 9 | 10 | [logo_info] 11 | logo_name = c:\linux\linux.bmp 12 | logo_show = 1 13 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/linux/u-boot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/linux/u-boot.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat0.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat0.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat10.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat10.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat3.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat4.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat4.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat5.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat5.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat6.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat6.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat7.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat7.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat8.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat8.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat9.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bat9.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/battery.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/battery.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bempty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/bempty.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/empty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/empty.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/full.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/full.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/head.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/head.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/linux1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/linux1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/linux2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/linux2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/low_pwr.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/low_pwr.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/melis1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/melis1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/melis2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/melis2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/startup.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/startup.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/tail.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/tail.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/wince1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/wince1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/os_show/wince2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/os_show/wince2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/sprite.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a13/wboot/bootfs/sprite.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/bootfs/sprite/sprite.ini: -------------------------------------------------------------------------------- 1 | [system] 2 | display_device= -1 3 | display_mode = 0 4 | erase_flash = 1 5 | 6 | 7 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a13/wboot/diskfs.fex: -------------------------------------------------------------------------------- 1 | datafs 2 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/default/env.cfg: -------------------------------------------------------------------------------- 1 | bootdelay=1 2 | #default bootcmd, will change at runtime according to key press 3 | bootcmd=run setargs_nand boot_normal#default nand boot 4 | #kernel command arguments 5 | console=ttyS0,115200 console=tty1 6 | nand_root=/dev/nandd 7 | mmc_root=/dev/mmcblk0p7 8 | init=/init 9 | loglevel=8 10 | #set kernel cmdline if boot.img or recovery.img has no cmdline we will use this 11 | setargs_nand=setenv bootargs coherent_pool=2M console=${console} root=${nand_root} init=${init} loglevel=${loglevel} partitions=${partitions} 12 | setargs_mmc=setenv bootargs coherent_pool=2M console=${console} root=${mmc_root} init=${init} loglevel=${loglevel} partitions=${partitions} 13 | #nand command syntax: sunxi_flash read address partition_name read_bytes 14 | #0x40007800 = 0x40008000(kernel entry) - 0x800(boot.img header 2k) 15 | #boot_normal=sunxi_flash read 40007800 boot;boota 40007800 16 | #boot_normal=boota 40007800 17 | boot_normal=fatload nand 0 0x43000000 script.bin && fatload nand 0 0x48000000 ${kernel} && bootm 0x48000000 18 | kernel=uImage 19 | 20 | boot_recovery=sunxi_flash read 40007800 recovery;boota 40007800 21 | boot_fastboot=fastboot 22 | #recovery key 23 | recovery_key_value_max=0x13 24 | recovery_key_value_min=0x10 25 | #fastboot key 26 | fastboot_key_value_max=0x8 27 | fastboot_key_value_min=0x2 28 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/default/image.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/default/image.cfg -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/default/sys_partition.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/default/sys_partition.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/AwPluginVector.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/AwPluginVector.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/FileAddSum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/FileAddSum -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/FileAddSum.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/FileAddSum.exe -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/ImageBuilder.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/ImageBuilder.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/IniParasPlg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/IniParasPlg.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/IniParasPlgex.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/IniParasPlgex.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/dragon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/dragon -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eDragonEx/plgvector.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eDragonEx/plgvector.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/card/cardscript.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/card/cardscript.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/card/cardtool-uboot.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/card/cardtool-uboot.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/card/cardtool.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/card/cardtool.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/split_xxxx.fex: -------------------------------------------------------------------------------- 1 | a1sp9maKde37ee6c-6dc4-4d74-86f0-db32116efb53e0e40ccf-7a66-406b-88c3-415b4a62a8f7777622ab-6bd0-464f-9da5-4cc203e855ea8ce5671f-e8b5-442e-9300-2ee6836c538aabf5f481-c961-4895-8245-631f74851d0c2bbb4229-55a8-4929-a165-3f406f0ee441ab5d09a9-c4dc-44bb-a175-cfb7c978a062329ea51e-1ddc-44ff-ac09-9ef7b64e0c52a712e47d-13f7-4490-9fea-bdcd587b8a4a5ed4d4e6-0ba3-45c5-a778-3232a42d4d960a9b7466-d7b3-4087-b8ff-c51763b852a50cd78bb6-a6d5-43a8-8661-fb91abd346433e8a86ee-711e-49c1-ad54-b59dd01fe513e22b0d8b-647f-4417-a115-9806c5d64eec -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/aultls32.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/aultls32.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/aultools.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/aultools.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/card_HW_scan.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/card_HW_scan.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/card_update_boot0.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/card_update_boot0.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/card_update_boot1.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/card_update_boot1.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/fed_card.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/fed_card.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/fed_nand.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/fed_nand.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/fes.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/fes.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/fes_1-1.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/fes_1-1.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/fes_1-2.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/fes_1-2.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/fes_2.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/fes_2.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/fet_restore.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/fet_restore.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/hw_scan.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/hw_scan.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/magic_cr_end.fex: -------------------------------------------------------------------------------- 1 | 7946A691FA1E4f3a9DDCD0C5828AEFD8BEBD1D2BF61B4b3eB54659D9B68E7A8E2C5940B77A624a3fA773C1D55256EA0D2A31F0F8D44543b38638364DD102BD97 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/magic_cr_start.fex: -------------------------------------------------------------------------------- 1 | 52332CE123644369A4B275509311AD04048DF9BD33974692B70C2CAFBAD9856D57CD78E7130645df871241D1AE7424904BA9FF978D41460c8E953E6D0CD9C1C7 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/magic_de_end.fex: -------------------------------------------------------------------------------- 1 | B7B71401B56C417c9AB59231F7B9E8B9EDB98F0099184ff5910B0AC556373851ACBFAB9F7FF049caBF0829D2CE3A6F421787E0A426EA48c6BF912FA2785F10D0 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/magic_de_start.fex: -------------------------------------------------------------------------------- 1 | 7D1EA8F5D171421cA90F9B559F68B003D65B145CB9AA47dfB8210A48F8D14641753CCEC0B13C4778BC0479570E993355F276F25ACBDE4de0890E7F52E0AE44CC -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/toolsb.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/toolsb.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/update_boot0.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/update_boot0.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eFex/usb/update_boot1.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eFex/usb/update_boot1.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eGon/boot0_nand.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eGon/boot0_nand.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eGon/boot0_sdcard.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eGon/boot0_sdcard.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eGon/boot1_nand.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eGon/boot1_nand.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/eGon/boot1_sdcard.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/eGon/boot1_sdcard.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/AwPluginVector.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/AwPluginVector.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/FSProcess.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/FSProcess.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/IniParasPlg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/IniParasPlg.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/RAMPart.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/RAMPart.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/ScriptParser.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/ScriptParser.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/config.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/config.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/fsbuild: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/fsbuild -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/fsbuild.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/fsbuild.exe -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/fstool.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/fstool.dll -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/fsbuild200/readme.txt -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/fsbuild200/split_c43a2a92-a8ed-4f92-abdb-ca0d5d29666d.bin: -------------------------------------------------------------------------------- 1 | a1sp9maKde37ee6c-6dc4-4d74-86f0-db32116efb53e0e40ccf-7a66-406b-88c3-415b4a62a8f7777622ab-6bd0-464f-9da5-4cc203e855ea8ce5671f-e8b5-442e-9300-2ee6836c538aabf5f481-c961-4895-8245-631f74851d0c2bbb4229-55a8-4929-a165-3f406f0ee441ab5d09a9-c4dc-44bb-a175-cfb7c978a062329ea51e-1ddc-44ff-ac09-9ef7b64e0c52a712e47d-13f7-4490-9fea-bdcd587b8a4a5ed4d4e6-0ba3-45c5-a778-3232a42d4d960a9b7466-d7b3-4087-b8ff-c51763b852a50cd78bb6-a6d5-43a8-8661-fb91abd346433e8a86ee-711e-49c1-ad54-b59dd01fe513e22b0d8b-647f-4417-a115-9806c5d64eec -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/mod_update/script: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/mod_update/script -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/mod_update/signature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/mod_update/signature -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/mod_update/simg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/mod_update/simg -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/mod_update/u_boot_env_gen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/mod_update/u_boot_env_gen -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/mod_update/update_boot0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/mod_update/update_boot0 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/mod_update/update_boot1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/mod_update/update_boot1 -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/mod_update/update_mbr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/mod_update/update_mbr -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs.ini -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/boot.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/boot.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/boot.ini: -------------------------------------------------------------------------------- 1 | [system] 2 | start_os_name = linux 3 | timeout = -1 4 | display_device= 0 5 | display_mode = 0 6 | erase_flash=1 7 | 8 | 9 | [linux] 10 | 11 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/boot_lvds.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/boot_lvds.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/boot_signature.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/boot_signature.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/drv_de.drv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/drv_de.drv -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/drv_de_lvds.drv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/drv_de_lvds.drv -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/drv_hdmi.drv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/drv_hdmi.drv -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/font24.sft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/font24.sft -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/font32.sft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/font32.sft -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/linux/linux.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/linux/linux.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/linux/linux.ini: -------------------------------------------------------------------------------- 1 | [segment] 2 | img_name = c:\linux\u-boot.bin 3 | img_size = 0x80000 4 | img_base = 0x4A000000 5 | 6 | [script_info] 7 | script_base = 0x43000000 8 | script_size = 0x10000 9 | 10 | [logo_info] 11 | logo_name = c:\linux\linux.bmp 12 | logo_show = 1 13 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/linux/u-boot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/linux/u-boot.bin -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat0.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat0.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat10.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat10.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat3.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat4.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat4.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat5.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat5.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat6.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat6.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat7.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat7.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat8.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat8.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat9.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bat9.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/battery.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/battery.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bempty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bempty.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bootlogo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/bootlogo.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/empty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/empty.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/full.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/full.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/head.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/head.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/linux1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/linux1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/linux2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/linux2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/low_pwr.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/low_pwr.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/melis1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/melis1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/melis2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/melis2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/startup.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/startup.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/tail.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/tail.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/wince1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/wince1.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/os_show/wince2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/os_show/wince2.bmp -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/prvt.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/prvt.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/a20/wboot/bootfs/sprite.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/a20/wboot/bootfs/sprite.axf -------------------------------------------------------------------------------- /allwinner-tools/livesuit/default/env_android.cfg: -------------------------------------------------------------------------------- 1 | bootdelay=1 2 | #default bootcmd, will change at runtime according to key press 3 | bootcmd=run setargs boot_normal 4 | #kernel command arguments 5 | console=ttyS0,115200 6 | nand_root=/dev/nandc 7 | mmc_root=/dev/mmcblk0p4 8 | init=/init 9 | loglevel=8 10 | #set kernel cmdline if boot.img or recovery.img has no cmdline we will use this 11 | setargs=setenv bootargs console=${console} root=${nand_root} init=${init} loglevel=${loglevel} 12 | #nand command syntax: nand read address partition_name 13 | #0x40007800 = 0x40008000(kernel entry) - 0x800(boot.img header 2k) 14 | boot_normal=nand read 40007800 boot;boota 40007800 15 | boot_recovery=nand read 40007800 recovery;boota 40007800 16 | boot_fastboot=fastboot 17 | #recovery key 18 | recovery_key_value_max=0x13 19 | recovery_key_value_min=0x10 20 | #fastboot key 21 | fastboot_key_value_max=0x8 22 | fastboot_key_value_min=0x2 23 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/default/env_linux.cfg: -------------------------------------------------------------------------------- 1 | bootdelay=1 2 | #default bootcmd, will change at runtime according to key press 3 | bootcmd=run setargs load_script boot_normal 4 | #kernel command arguments 5 | console=ttyS0,115200 6 | nand_root=/dev/nandd 7 | mmc_root=/dev/mmcblk0p7 8 | init=/init 9 | loglevel=8 10 | #set kernel cmdline if boot.img or recovery.img has no cmdline we will use this 11 | setargs=setenv bootargs console=${console} console=tty1 root=${nand_root} init=${init} loglevel=${loglevel} 12 | #nand command syntax: nand read address partition_name 13 | #0x40007800 = 0x40008000(kernel entry) - 0x800(boot.img header 2k) 14 | #boot_normal=nand read 40007800 boot;boota 40007800 15 | boot_normal=fatload nand 0 0x48000000 uImage; bootm 0x48000000 16 | load_script=fatload nand 0 43000000 script.bin 17 | boot_recovery=nand read 40007800 recovery;boota 40007800 18 | boot_fastboot=fastboot 19 | #recovery key 20 | recovery_key_value_max=0x13 21 | recovery_key_value_min=0x10 22 | #fastboot key 23 | fastboot_key_value_max=0x8 24 | fastboot_key_value_min=0x2 25 | -------------------------------------------------------------------------------- /allwinner-tools/livesuit/default/image_android.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/default/image_android.cfg -------------------------------------------------------------------------------- /allwinner-tools/livesuit/default/image_linux.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/default/image_linux.cfg -------------------------------------------------------------------------------- /allwinner-tools/livesuit/default/sys_config_android.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/default/sys_config_android.fex -------------------------------------------------------------------------------- /allwinner-tools/livesuit/default/sys_config_linux.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/allwinner-tools/livesuit/default/sys_config_linux.fex -------------------------------------------------------------------------------- /apply_patch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # apply_patch.sh 3 | cd `dirname $0` 4 | TOP=`pwd` 5 | PATCH_DIR=${TOP}/patch 6 | TMP_PATCH_PACKAGE=${TOP}/patch.tgz 7 | 8 | 9 | echo "apply patch..." 10 | sleep 1 11 | 12 | cd $PATCH_DIR || echo "patch dir $PATCH_DIR not found" || exit 0 13 | tar zcf $TMP_PATCH_PACKAGE ./ && 14 | tar xf $TMP_PATCH_PACKAGE -C ${TOP} 15 | rm -f $TMP_PATCH_PACKAGE 16 | -------------------------------------------------------------------------------- /chosen_board.mk: -------------------------------------------------------------------------------- 1 | BOARD=pcduino3 2 | ANDROID= 3 | SOC=a20 4 | UBOOT_CONFIG=pcduino3 5 | MACH=sun7i 6 | KERNEL_CONFIG=sun7i_defconfig 7 | -------------------------------------------------------------------------------- /configure: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | if [ ! -d sunxi-boards/sys_config/ ]; then 5 | git submodule init 6 | git submodule update sunxi-boards 7 | fi 8 | 9 | list_boards() { 10 | ls -1 sunxi-boards/sys_config/*/*.fex | 11 | sed -n -e 's|.*/\([^/]\+\)\.fex$|\1|p' | sort -V #| 12 | # sed -e 's|.*|\t* \0 \0-android|' 13 | } 14 | 15 | # keep the output `sh` friendly 16 | # i.e., no spaces around the '=' 17 | generate_board_mk() { 18 | local board="${1%-android}" android= soc= 19 | 20 | [ "$board" = "$1" ] || android=yes 21 | soc=$(ls -1 sunxi-boards/sys_config/*/$board.fex 2> /dev/null | cut -d/ -f3) 22 | 23 | cat <<-EOT 24 | BOARD=$board 25 | ANDROID=$android 26 | SOC=$soc 27 | UBOOT_CONFIG=$board 28 | EOT 29 | 30 | case "$soc" in 31 | a10) 32 | cat <<-EOT 33 | MACH=sun4i 34 | KERNEL_CONFIG=sun4i${android:+_crane}_defconfig 35 | EOT 36 | ;; 37 | a13) 38 | cat <<-EOT 39 | MACH=sun5i 40 | KERNEL_CONFIG=a13${android:+_nuclear}_defconfig 41 | EOT 42 | ;; 43 | a20) 44 | KERNEL_CONFIG=sun7i${android:+_nuclear}_defconfig 45 | if [ -f patch/linux-sunxi/arch/arm/configs/${board}_defconfig ]; then 46 | KERNEL_CONFIG=${board}_defconfig 47 | fi 48 | cat <<-EOT 49 | MACH=sun7i 50 | KERNEL_CONFIG=${KERNEL_CONFIG} 51 | EOT 52 | ;; 53 | *) 54 | echo "$soc: unsupport SoC" >&2 55 | return 1 56 | ;; 57 | esac 58 | } 59 | 60 | usage() { 61 | cat <<-EOT >&2 62 | Usage: $0 63 | 64 | supported boards: 65 | EOT 66 | list_boards 67 | } 68 | 69 | if [ $# -eq 0 ]; then 70 | usage 71 | elif ls -1 sunxi-boards/sys_config/*/${1%-android}.fex 2> /dev/null 1>&2; then 72 | out=chosen_board.mk 73 | if generate_board_mk "$1" > $out~; then 74 | mv $out~ $out 75 | echo "$1 configured. Now run \`make\`" 76 | else 77 | rm $out~ 78 | exit 1 79 | fi 80 | else 81 | echo "$1: invalid board name" >&2 82 | usage 83 | exit 1 84 | fi 85 | -------------------------------------------------------------------------------- /patch/linux-sunxi/arch/arm/mach-sun7i/include/mach/dma.h: -------------------------------------------------------------------------------- 1 | /* 2 | * arch/arm/mach-sun7i/include/mach/dma.h 3 | * (C) Copyright 2010-2015 4 | * Reuuimlla Technology Co., Ltd. 5 | * liugang 6 | * 7 | * sun7i dma driver header file 8 | * 9 | * This program is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU General Public License as 11 | * published by the Free Software Foundation; either version 2 of 12 | * the License, or (at your option) any later version. 13 | * 14 | */ 15 | 16 | #ifndef __SW_DMA_H 17 | #define __SW_DMA_H 18 | 19 | #include 20 | 21 | /* dma channel irq type */ 22 | typedef enum { 23 | CHAN_IRQ_NO = (0b000 ), /* none irq */ 24 | CHAN_IRQ_HD = (0b001 ), /* buf half done irq */ 25 | CHAN_IRQ_FD = (0b010 ), /* buf full done irq */ 26 | }dma_chan_irq_type; 27 | 28 | /* wait clock cycles and data block size */ 29 | typedef struct { 30 | u32 src_wait_cyc : 8; /* bit0~7: source wait clock cycles n */ 31 | u32 src_blk_sz : 8; /* bit8~15: source data block size n */ 32 | u32 dst_wait_cyc : 8; /* bit16~23: dest wait clock cycles n */ 33 | u32 dst_blk_sz : 8; /* bit24~31: dest data block size n */ 34 | }dma_para_t; 35 | 36 | /* data width and burst */ 37 | #define DATA_WIDTH_8BIT 0 38 | #define DATA_WIDTH_16BIT 1 39 | #define DATA_WIDTH_32BIT 2 40 | #define DATA_BRST_1 0 41 | #define DATA_BRST_4 1 42 | #define DATA_BRST_8 2 43 | typedef struct { 44 | u8 src_data_width; /* src data width */ 45 | u8 src_bst_len; /* src burst length */ 46 | u8 dst_data_width; /* dst data width */ 47 | u8 dst_bst_len; /* dst burst length */ 48 | }xferunit_t; 49 | 50 | /* address mode */ 51 | #define NDMA_ADDR_INCREMENT 0 52 | #define NDMA_ADDR_NOCHANGE 1 53 | #define DDMA_ADDR_LINEAR 0 54 | #define DDMA_ADDR_IO 1 55 | #define DDMA_ADDR_HORI_PAGE 2 56 | #define DDMA_ADDR_VERT_PAGE 3 57 | typedef struct { 58 | u16 src_addr_mode; /* src address mode */ 59 | u16 dst_addr_mode; /* dst address mode */ 60 | }addrtype_t; 61 | 62 | /* normal channel src drq type */ 63 | #define N_SRC_IR0_RX 0b00000 64 | #define N_SRC_IR1_RX 0b00001 65 | #define N_SRC_SPDIF_RX 0b00010 66 | #define N_SRC_IIS0_RX 0b00011 67 | #define N_SRC_IIS1_RX 0b00100 68 | #define N_SRC_AC97_RX 0b00101 69 | #define N_SRC_IIS2_RX 0b00110 70 | /* resv: 1 */ 71 | #define N_SRC_UART0_RX 0b01000 72 | #define N_SRC_UART1_RX 0b01001 73 | #define N_SRC_UART2_RX 0b01010 74 | #define N_SRC_UART3_RX 0b01011 75 | #define N_SRC_UART4_RX 0b01100 76 | #define N_SRC_UART5_RX 0b01101 77 | #define N_SRC_UART6_RX 0b01110 78 | #define N_SRC_UART7_RX 0b01111 79 | #define N_SRC_HDMI_DDC_RX 0b10000 80 | #define N_SRC_USB_EP1 0b10001 81 | /* resv: 1 */ 82 | #define N_SRC_AUDIO_CODEC_AD 0b10011 83 | /* resv: 1 */ 84 | #define N_SRC_SRAM 0b10101 85 | #define N_SRC_SDRAM 0b10110 86 | #define N_SRC_TP_AD 0b10111 87 | #define N_SRC_SPI0_RX 0b11000 88 | #define N_SRC_SPI1_RX 0b11001 89 | #define N_SRC_SPI2_RX 0b11010 90 | #define N_SRC_SPI3_RX 0b11011 91 | #define N_SRC_USB_EP2 0b11100 92 | #define N_SRC_USB_EP3 0b11101 93 | #define N_SRC_USB_EP4 0b11110 94 | #define N_SRC_USB_EP5 0b11111 95 | 96 | /* normal channel dst drq type */ 97 | #define N_DST_IR0_TX 0b00000 98 | #define N_DST_IR1_TX 0b00001 99 | #define N_DST_SPDIF_TX 0b00010 100 | #define N_DST_IIS0_TX 0b00011 101 | #define N_DST_IIS1_TX 0b00100 102 | #define N_DST_AC97_TX 0b00101 103 | #define N_DST_IIS2_TX 0b00110 104 | /* resv: 1 */ 105 | #define N_DST_UART0_TX 0b01000 106 | #define N_DST_UART1_TX 0b01001 107 | #define N_DST_UART2_TX 0b01010 108 | #define N_DST_UART3_TX 0b01011 109 | #define N_DST_UART4_TX 0b01100 110 | #define N_DST_UART5_TX 0b01101 111 | #define N_DST_UART6_TX 0b01110 112 | #define N_DST_UART7_TX 0b01111 113 | #define N_DST_HDMI_DDC_TX 0b10000 114 | #define N_DST_USB_EP1 0b10001 115 | /* resv: 1 */ 116 | #define N_DST_AUDIO_CODEC_DA 0b10011 117 | /* resv: 1 */ 118 | #define N_DST_SRAM 0b10101 119 | #define N_DST_SDRAM 0b10110 120 | #define N_DST_TP_AD 0b10111 121 | #define N_DST_SPI0_TX 0b11000 122 | #define N_DST_SPI1_TX 0b11001 123 | #define N_DST_SPI2_TX 0b11010 124 | #define N_DST_SPI3_TX 0b11011 125 | #define N_DST_USB_EP2 0b11100 126 | #define N_DST_USB_EP3 0b11101 127 | #define N_DST_USB_EP4 0b11110 128 | #define N_DST_USB_EP5 0b11111 129 | 130 | /* dedicate channel src drq type */ 131 | #define D_SRC_SRAM 0b00000 132 | #define D_SRC_SDRAM 0b00001 133 | /* resv: 1 */ 134 | #define D_SRC_NAND 0b00011 135 | #define D_SRC_USB0 0b00100 136 | /* resv: 2 */ 137 | #define D_SRC_EMAC_RX 0b00111 138 | /* resv: 1 */ 139 | #define D_SRC_SPI1_RX 0b01001 140 | /* resv: 1 */ 141 | #define D_SRC_SS_RX 0b01011 /* security system rx */ 142 | /* resv: 15 */ 143 | #define D_SRC_SPI0_RX 0b11011 144 | /* resv: 1 */ 145 | #define D_SRC_SPI2_RX 0b11101 146 | /* resv: 1 */ 147 | #define D_SRC_SPI3_RX 0b11111 148 | 149 | /* dedicate channel dst drq type */ 150 | #define D_DST_SRAM 0b00000 151 | #define D_DST_SDRAM 0b00001 152 | /* resv: 1 */ 153 | #define D_DST_NAND 0b00011 154 | #define D_DST_USB0 0b00100 155 | /* resv: 1 */ 156 | #define D_DST_EMAC_TX 0b00110 157 | /* resv: 1 */ 158 | #define D_DST_SPI1_TX 0b01000 159 | /* resv: 1 */ 160 | #define D_DST_SS_TX 0b01010 /* security system tx */ 161 | /* resv: 3 */ 162 | #define D_DST_TCON0 0b01110 163 | #define D_DST_TCON1 0b01111 164 | /* resv: 7 */ 165 | #define D_DST_MSC 0b10111 166 | #define D_DST_HDMI_AUD 0b11000 167 | /* resv: 1 */ 168 | #define D_DST_SPI0_TX 0b11010 169 | /* resv: 1 */ 170 | #define D_DST_SPI2_TX 0b11100 171 | /* resv: 1 */ 172 | #define D_DST_SPI3_TX 0b11110 173 | /* resv: 1 */ 174 | 175 | /* security define */ 176 | #define SRC_SECU_DST_SECU 0 177 | #define SRC_SECU_DST_NON_SECU 1 178 | #define SRC_NON_SECU_DST_SECU 2 179 | #define SRC_NON_SECU_DST_NON_SECU 3 180 | 181 | /* dma config para */ 182 | typedef struct { 183 | /* 184 | * paras for dma ctrl reg 185 | */ 186 | xferunit_t xfer_type; /* dsta width and burst length */ 187 | addrtype_t address_type; /* address type */ 188 | bool bconti_mode; /* continue mode, true is continue mode, false not */ 189 | u8 src_drq_type; /* src drq type */ 190 | u8 dst_drq_type; /* dst drq type */ 191 | /* 192 | * other paras 193 | */ 194 | u32 irq_spt; /* channel irq supported, eg: CHAN_IRQ_HD | CHAN_IRQ_FD */ 195 | /* 196 | * these not always need set, so move to sw_dma_ctl 197 | */ 198 | //u8 src_secu; /* dma src security, 0: secure, 1: non-secure */ 199 | //u8 dst_secu; /* dma dst security, 0: secure, 1: non-secure */ 200 | //u16 wait_state; /* for normal dma only */ 201 | //dma_para_t para; /* dma para reg */ 202 | }dma_config_t; 203 | 204 | /* dma operation type */ 205 | typedef enum { 206 | DMA_OP_START, /* start dma */ 207 | DMA_OP_STOP, /* stop dma */ 208 | DMA_OP_GET_BYTECNT_LEFT, /* get byte cnt left */ 209 | DMA_OP_SET_SECURITY, /* set security */ 210 | DMA_OP_SET_HD_CB, /* set half done callback */ 211 | DMA_OP_SET_FD_CB, /* set full done callback */ 212 | /* 213 | * only for dedicate dma below 214 | */ 215 | DMA_OP_GET_STATUS, /* get channel status: idle/busy */ 216 | DMA_OP_SET_PARA_REG, /* set para reg */ 217 | /* 218 | * only for normal dma below 219 | */ 220 | DMA_OP_SET_WAIT_STATE, /* set wait state status, 0~7 */ 221 | }dma_op_type_e; 222 | 223 | /* dma handle type defination */ 224 | typedef void * dma_hdl_t; 225 | 226 | /* irq callback func defination */ 227 | typedef void (* dma_cb)(dma_hdl_t dma_hdl, void *parg); 228 | 229 | /* dma callback struct */ 230 | typedef struct { 231 | dma_cb func; /* callback fuction */ 232 | void *parg; /* args of func */ 233 | }dma_cb_t; 234 | 235 | enum sw_dmadir { 236 | SW_DMA_RWNULL, 237 | SW_DMA_RDEV, /* read from dev */ 238 | SW_DMA_WDEV, /* write to dev */ 239 | SW_DMA_M2M, 240 | // SW_DMA_RWDEV /* can r/w dev */ 241 | }; 242 | 243 | /* dma channel type */ 244 | typedef enum { 245 | CHAN_NORMAL, /* normal channel, id 0~7 */ 246 | CHAN_DEDICATE, /* dedicate channel, id 8~15 */ 247 | }dma_chan_type_e; 248 | 249 | /* dma export fuction */ 250 | dma_hdl_t sw_dma_request(char * name, dma_chan_type_e type); 251 | u32 sw_dma_release(dma_hdl_t dma_hdl); 252 | u32 sw_dma_enqueue(dma_hdl_t dma_hdl, u32 src_addr, u32 dst_addr, u32 byte_cnt); 253 | u32 sw_dma_config(dma_hdl_t dma_hdl, dma_config_t *pcfg); 254 | u32 sw_dma_ctl(dma_hdl_t dma_hdl, dma_op_type_e op, void *parg); 255 | int sw_dma_getposition(dma_hdl_t dma_hdl, u32 *psrc, u32 *pdst); 256 | void sw_dma_dump_chan(dma_hdl_t dma_hdl); 257 | 258 | #endif /* __SW_DMA_H */ 259 | 260 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/Kconfig: -------------------------------------------------------------------------------- 1 | menu "Device Drivers" 2 | 3 | source "drivers/hardwarelib/Kconfig" 4 | 5 | source "drivers/base/Kconfig" 6 | 7 | source "drivers/connector/Kconfig" 8 | 9 | source "drivers/mtd/Kconfig" 10 | 11 | source "drivers/of/Kconfig" 12 | 13 | source "drivers/parport/Kconfig" 14 | 15 | source "drivers/pnp/Kconfig" 16 | 17 | source "drivers/block/Kconfig" 18 | 19 | # misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4 20 | 21 | source "drivers/misc/Kconfig" 22 | 23 | source "drivers/ide/Kconfig" 24 | 25 | source "drivers/scsi/Kconfig" 26 | 27 | source "drivers/ata/Kconfig" 28 | 29 | source "drivers/md/Kconfig" 30 | 31 | source "drivers/target/Kconfig" 32 | 33 | source "drivers/message/fusion/Kconfig" 34 | 35 | source "drivers/firewire/Kconfig" 36 | 37 | source "drivers/message/i2o/Kconfig" 38 | 39 | source "drivers/macintosh/Kconfig" 40 | 41 | source "drivers/net/Kconfig" 42 | 43 | source "drivers/isdn/Kconfig" 44 | 45 | # input before char - char/joystick depends on it. As does USB. 46 | 47 | source "drivers/input/Kconfig" 48 | 49 | source "drivers/gsensor/Kconfig" 50 | source "drivers/char/Kconfig" 51 | 52 | source "drivers/i2c/Kconfig" 53 | 54 | source "drivers/spi/Kconfig" 55 | 56 | source "drivers/hsi/Kconfig" 57 | 58 | source "drivers/pps/Kconfig" 59 | 60 | source "drivers/ptp/Kconfig" 61 | 62 | source "drivers/pinctrl/Kconfig" 63 | 64 | source "drivers/gpio/Kconfig" 65 | 66 | source "drivers/w1/Kconfig" 67 | 68 | source "drivers/power/Kconfig" 69 | 70 | source "drivers/hwmon/Kconfig" 71 | 72 | source "drivers/thermal/Kconfig" 73 | 74 | source "drivers/watchdog/Kconfig" 75 | 76 | source "drivers/ssb/Kconfig" 77 | 78 | source "drivers/bcma/Kconfig" 79 | 80 | source "drivers/mfd/Kconfig" 81 | 82 | source "drivers/regulator/Kconfig" 83 | 84 | source "drivers/media/Kconfig" 85 | 86 | source "drivers/video/Kconfig" 87 | 88 | source "sound/Kconfig" 89 | 90 | source "drivers/hid/Kconfig" 91 | 92 | source "drivers/usb/Kconfig" 93 | 94 | source "drivers/uwb/Kconfig" 95 | 96 | source "drivers/mmc/Kconfig" 97 | 98 | source "drivers/memstick/Kconfig" 99 | 100 | source "drivers/leds/Kconfig" 101 | 102 | source "drivers/switch/Kconfig" 103 | 104 | source "drivers/accessibility/Kconfig" 105 | 106 | source "drivers/infiniband/Kconfig" 107 | 108 | source "drivers/edac/Kconfig" 109 | 110 | source "drivers/rtc/Kconfig" 111 | 112 | source "drivers/dma/Kconfig" 113 | 114 | source "drivers/dca/Kconfig" 115 | 116 | source "drivers/auxdisplay/Kconfig" 117 | 118 | source "drivers/uio/Kconfig" 119 | 120 | source "drivers/vlynq/Kconfig" 121 | 122 | source "drivers/virtio/Kconfig" 123 | 124 | source "drivers/hv/Kconfig" 125 | 126 | source "drivers/xen/Kconfig" 127 | 128 | source "drivers/staging/Kconfig" 129 | 130 | source "drivers/platform/Kconfig" 131 | 132 | source "drivers/clk/Kconfig" 133 | 134 | source "drivers/hwspinlock/Kconfig" 135 | 136 | source "drivers/clocksource/Kconfig" 137 | 138 | source "drivers/iommu/Kconfig" 139 | 140 | source "drivers/remoteproc/Kconfig" 141 | 142 | source "drivers/rpmsg/Kconfig" 143 | 144 | source "drivers/virt/Kconfig" 145 | 146 | source "drivers/devfreq/Kconfig" 147 | 148 | endmenu 149 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/hardwarelib/Kconfig: -------------------------------------------------------------------------------- 1 | menu "hardware lib support" 2 | 3 | config HARDWARE_LIB 4 | bool "hardware lib" 5 | 6 | config HARDWARE_LIB_UTIL 7 | tristate "hardware lib util" 8 | depends on HARDWARE_LIB 9 | default m 10 | 11 | config HARDWARE_LIB_ADC 12 | tristate "adc driver" 13 | depends on HARDWARE_LIB_UTIL 14 | default m 15 | 16 | config HARDWARE_LIB_GPIO 17 | tristate "gpio driver" 18 | depends on HARDWARE_LIB_UTIL && !SUN4I_GPIO_UGLY 19 | default m 20 | 21 | config HARDWARE_LIB_PWM 22 | tristate "pwm driver" 23 | depends on HARDWARE_LIB_UTIL 24 | default m 25 | 26 | config HARDWARE_LIB_INTERRUPT 27 | tristate "interrupt driver" 28 | depends on HARDWARE_LIB_UTIL 29 | default m 30 | 31 | config HARDWARE_LIB_SPI 32 | bool "spi driver patch" 33 | depends on HARDWARE_LIB 34 | default y 35 | 36 | config HARDWARE_LIB_I2C 37 | bool "i2c driver patch" 38 | depends on HARDWARE_LIB 39 | default y 40 | 41 | config SUNXI_DVI_FIX 42 | bool "bug fix for dvi display" 43 | depends on HARDWARE_LIB 44 | default y 45 | 46 | config HARDWARE_LIB_ROOTFS 47 | bool "initramfs" 48 | default n 49 | 50 | config HARDWARE_LIB_KEYPAD 51 | tristate "keypad driver for android (HOME/MENU/BACK)" 52 | default n 53 | 54 | config RTXX7X_SW 55 | tristate "rt5370 wireless driver" 56 | default n 57 | 58 | endmenu 59 | 60 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/media/video/sun4i/sun4i_avs.c: -------------------------------------------------------------------------------- 1 | /* 2 | * drivers/media/video/sun4i/sun4i_avs.c 3 | * 4 | * (C) Copyright 2007-2012 5 | * Allwinner Technology Co., Ltd. 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License as 9 | * published by the Free Software Foundation; either version 2 of 10 | * the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 20 | * MA 02111-1307 USA 21 | */ 22 | 23 | /* 24 | * sun4i_avs.c 25 | * driver for av-sync counter 26 | * Author : Truby.Zong 27 | */ 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | 53 | #include "sun4i_cedar.h" 54 | 55 | #define DRV_VERSION "0.01alpha" 56 | 57 | #ifndef AVSDEV_MAJOR 58 | #define AVSDEV_MAJOR (151) 59 | #endif 60 | #ifndef AVSDEV_MINOR 61 | #define AVSDEV_MINOR (0) 62 | #endif 63 | 64 | #undef _info 65 | #ifdef CEDAR_DEBUG 66 | # define _info(fmt, args...) printk( KERN_DEBUG "[avs]: " fmt, ## args) 67 | #else 68 | # define _info(fmt, args...) 69 | #endif 70 | 71 | int avs_dev_major = AVSDEV_MAJOR; 72 | int avs_dev_minor = AVSDEV_MINOR; 73 | module_param(avs_dev_major, int, S_IRUGO); 74 | module_param(avs_dev_minor, int, S_IRUGO); 75 | 76 | struct iomap_resource{ 77 | struct resource *io_sram; 78 | struct resource *io_ccmu; 79 | struct resource *io_macc; 80 | struct resource *io_mpeg; 81 | struct resource *io_vc1; 82 | struct resource *io_memc; 83 | }; 84 | struct iomap_resource iomap_res; 85 | 86 | struct iomap_para{ 87 | volatile char* regs_sram; 88 | volatile char* regs_ccmu; 89 | volatile char* regs_macc; 90 | volatile char* regs_mpeg; 91 | volatile char* regs_vc1; 92 | volatile char* regs_memc; 93 | }; 94 | 95 | struct avs_dev { 96 | struct cdev cdev; /* char device struct */ 97 | struct device *dev; /* ptr to class device struct */ 98 | struct class *class; /* class for auto create device node */ 99 | 100 | struct semaphore sem; /* mutual exclusion semaphore */ 101 | spinlock_t lock; /* spinlock to pretect ioctl access */ 102 | 103 | struct iomap_para iomap_addrs; /* io remap addrs */ 104 | struct iomap_resource iomap_res; /* io remap resources */ 105 | }; 106 | struct avs_dev *avs_devp; 107 | 108 | /* 109 | * ioremap and request iomem 110 | */ 111 | static void avs_register_iomem(struct avs_dev *devp) 112 | { 113 | struct resource *res; 114 | char *addr; 115 | 116 | memset(&devp->iomap_res, 0, sizeof(struct iomap_resource)); 117 | memset(&devp->iomap_addrs, 0, sizeof(struct iomap_para)); 118 | 119 | /* request mem for ccmu */ 120 | res = request_mem_region(CCMU_REGS_pBASE, 1024, "ccmu"); 121 | if (res == NULL) { 122 | printk("Cannot reserve region for ccmu\n"); 123 | goto err_out; 124 | } 125 | devp->iomap_res.io_ccmu = res; 126 | 127 | /* ioremap for ccmu */ 128 | addr = ioremap(CCMU_REGS_pBASE, 4096); 129 | if (!addr){ 130 | printk("cannot map region for ccmu"); 131 | goto err_out; 132 | } 133 | devp->iomap_addrs.regs_ccmu = addr; 134 | 135 | return; 136 | 137 | err_out: 138 | if (devp->iomap_addrs.regs_ccmu) 139 | iounmap(devp->iomap_addrs.regs_ccmu); 140 | } 141 | 142 | /* 143 | * unmap/release iomem 144 | */ 145 | static void avs_iomem_unregister(struct avs_dev *devp) 146 | { 147 | if (devp->iomap_res.io_ccmu) { 148 | release_resource(devp->iomap_res.io_ccmu); 149 | devp->iomap_res.io_ccmu = NULL; 150 | } 151 | 152 | /* iounmap */ 153 | if (devp->iomap_addrs.regs_ccmu) { 154 | iounmap(devp->iomap_addrs.regs_ccmu); 155 | devp->iomap_addrs.regs_ccmu = NULL; 156 | } 157 | } 158 | 159 | /* 160 | * ioctl function 161 | * including : wait video engine done, 162 | * AVS Counter control, 163 | * Physical memory control, 164 | * module clock/freq control. 165 | */ 166 | long avsdev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 167 | { 168 | long ret; 169 | unsigned int v; 170 | 171 | spinlock_t *lock; 172 | struct avs_dev *devp; 173 | 174 | ret = 0; 175 | devp = filp->private_data; 176 | lock = &devp->lock; 177 | 178 | switch (cmd) 179 | { 180 | case IOCTL_GETVALUE_AVS2: 181 | spin_lock(lock); 182 | 183 | v = readl(devp->iomap_addrs.regs_ccmu + 0xc40); 184 | 185 | spin_unlock(lock); 186 | return v; 187 | 188 | case IOCTL_CONFIG_AVS2: 189 | spin_lock(lock); 190 | 191 | v = readl(devp->iomap_addrs.regs_ccmu + 0xc44); 192 | v = 239<<16 | (v&0xffff); 193 | writel(v, devp->iomap_addrs.regs_ccmu + 0xc44); 194 | v = readl(devp->iomap_addrs.regs_ccmu + 0xc38); 195 | v |= 1<<9 | 1<<1; 196 | writel(v, devp->iomap_addrs.regs_ccmu + 0xc38); 197 | writel(0, devp->iomap_addrs.regs_ccmu + 0xc40); 198 | 199 | spin_unlock(lock); 200 | break; 201 | 202 | case IOCTL_RESET_AVS2: 203 | spin_lock(lock); 204 | 205 | writel(0, devp->iomap_addrs.regs_ccmu + 0xc40); 206 | 207 | spin_unlock(lock); 208 | break; 209 | 210 | case IOCTL_PAUSE_AVS2: 211 | spin_lock(lock); 212 | 213 | v = readl(devp->iomap_addrs.regs_ccmu + 0xc38); 214 | v |= 1<<9; 215 | writel(v, devp->iomap_addrs.regs_ccmu + 0xc38); 216 | 217 | spin_unlock(lock); 218 | break; 219 | 220 | case IOCTL_START_AVS2: 221 | spin_lock(lock); 222 | 223 | v = readl(devp->iomap_addrs.regs_ccmu + 0xc38); 224 | v &= ~(1<<9); 225 | writel(v, devp->iomap_addrs.regs_ccmu + 0xc38); 226 | 227 | spin_unlock(lock); 228 | break; 229 | 230 | default: 231 | break; 232 | } 233 | 234 | return ret; 235 | } 236 | 237 | static int avsdev_open(struct inode *inode, struct file *filp) 238 | { 239 | struct avs_dev *devp; 240 | devp = container_of(inode->i_cdev, struct avs_dev, cdev); 241 | filp->private_data = devp; 242 | 243 | if (down_interruptible(&devp->sem)) { 244 | return -ERESTARTSYS; 245 | } 246 | 247 | // init other resource here 248 | 249 | up(&devp->sem); 250 | 251 | nonseekable_open(inode, filp); 252 | return 0; 253 | } 254 | 255 | static int avsdev_release(struct inode *inode, struct file *filp) 256 | { 257 | struct avs_dev *devp; 258 | 259 | devp = filp->private_data; 260 | 261 | if (down_interruptible(&devp->sem)) { 262 | return -ERESTARTSYS; 263 | } 264 | 265 | /* release other resource here */ 266 | 267 | up(&devp->sem); 268 | return 0; 269 | } 270 | 271 | void avsdev_vma_open(struct vm_area_struct *vma) 272 | { 273 | printk(KERN_NOTICE "avsdev VMA open, virt %lx, phys %lx\n", 274 | vma->vm_start, vma->vm_pgoff << PAGE_SHIFT); 275 | return; 276 | } 277 | 278 | void avsdev_vma_close(struct vm_area_struct *vma) 279 | { 280 | printk(KERN_NOTICE "avsdev VMA close.\n"); 281 | return; 282 | } 283 | 284 | static struct vm_operations_struct avsdev_remap_vm_ops = { 285 | .open = avsdev_vma_open, 286 | .close = avsdev_vma_close, 287 | }; 288 | 289 | static int avsdev_mmap(struct file *filp, struct vm_area_struct *vma) 290 | { 291 | unsigned long temp_pfn; 292 | unsigned int VAddr; 293 | struct iomap_para addrs; 294 | 295 | unsigned int io_ram = 0; 296 | VAddr = vma->vm_pgoff << 12; 297 | 298 | addrs = avs_devp->iomap_addrs; 299 | 300 | if(VAddr == (unsigned int)addrs.regs_ccmu) { 301 | temp_pfn = CCMU_REGS_pBASE >> 12; 302 | io_ram = 1; 303 | } else { 304 | temp_pfn = (__pa(vma->vm_pgoff << 12))>>12; 305 | io_ram = 0; 306 | } 307 | 308 | if (io_ram == 0) { 309 | /* Set reserved and I/O flag for the area. */ 310 | vma->vm_flags |= VM_RESERVED | VM_IO; 311 | 312 | /* Select uncached access. */ 313 | vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 314 | 315 | if (remap_pfn_range(vma, vma->vm_start, temp_pfn, 316 | vma->vm_end - vma->vm_start, vma->vm_page_prot)) { 317 | return -EAGAIN; 318 | } 319 | } else { 320 | /* Set reserved and I/O flag for the area. */ 321 | vma->vm_flags |= VM_RESERVED | VM_IO; 322 | 323 | /* Select uncached access. */ 324 | vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 325 | 326 | if (io_remap_pfn_range(vma, vma->vm_start, temp_pfn, 327 | vma->vm_end - vma->vm_start, vma->vm_page_prot)) { 328 | return -EAGAIN; 329 | } 330 | } 331 | 332 | vma->vm_ops = &avsdev_remap_vm_ops; 333 | avsdev_vma_open(vma); 334 | 335 | return 0; 336 | } 337 | 338 | static struct file_operations avsdev_fops = { 339 | .owner = THIS_MODULE, 340 | .unlocked_ioctl = avsdev_ioctl, 341 | .mmap = avsdev_mmap, 342 | .open = avsdev_open, 343 | .release = avsdev_release, 344 | .llseek = no_llseek, 345 | }; 346 | 347 | static int __init avsdev_init(void) 348 | { 349 | int ret; 350 | int devno; 351 | dev_t dev = 0; 352 | 353 | printk("[tt]----- avs_dev driver load... ----\n"); 354 | if (avs_dev_major) { 355 | dev = MKDEV(avs_dev_major, avs_dev_minor); 356 | ret = register_chrdev_region(dev, 1, "avs_dev"); 357 | } else { 358 | ret = alloc_chrdev_region(&dev, avs_dev_minor, 1, "avs_dev"); 359 | avs_dev_major = MAJOR(dev); 360 | avs_dev_minor = MINOR(dev); 361 | } 362 | 363 | if (ret < 0) { 364 | printk(KERN_WARNING "avs_dev: can't get major %d\n", avs_dev_major); 365 | return ret; 366 | } 367 | 368 | avs_devp = kmalloc(sizeof(struct avs_dev), GFP_KERNEL); 369 | if (avs_devp == NULL) { 370 | printk("malloc mem for avs device err\n"); 371 | return -ENOMEM; 372 | } 373 | memset(avs_devp, 0, sizeof(struct avs_dev)); 374 | 375 | //init_MUTEX(&avs_devp->sem); 376 | sema_init(&avs_devp->sem, 0); 377 | 378 | /* request resources and ioremap */ 379 | printk("[tt]----- register iomem ----\n"); 380 | avs_register_iomem(avs_devp); 381 | 382 | /* init lock for protect ioctl access */ 383 | spin_lock_init(&avs_devp->lock); 384 | 385 | devno = MKDEV(avs_dev_major, avs_dev_minor); 386 | cdev_init(&avs_devp->cdev, &avsdev_fops); 387 | avs_devp->cdev.owner = THIS_MODULE; 388 | avs_devp->cdev.ops = &avsdev_fops; 389 | ret = cdev_add(&avs_devp->cdev, devno, 1); 390 | if (ret) { 391 | printk(KERN_NOTICE "Err:%d add avsdev", ret); 392 | } 393 | 394 | avs_devp->class = class_create(THIS_MODULE, "avs_dev"); 395 | avs_devp->dev = device_create(avs_devp->class, NULL, devno, NULL, "avs_dev"); 396 | 397 | printk("[tt]--- avs_dev driver load ok!! -----\n"); 398 | return 0; 399 | } 400 | module_init(avsdev_init); 401 | 402 | static void __exit avsdev_exit(void) 403 | { 404 | dev_t dev; 405 | dev = MKDEV(avs_dev_major, avs_dev_minor); 406 | 407 | /* Unregister iomem and iounmap */ 408 | avs_iomem_unregister(avs_devp); 409 | 410 | if (avs_devp) { 411 | cdev_del(&avs_devp->cdev); 412 | device_destroy(avs_devp->class, dev); 413 | class_destroy(avs_devp->class); 414 | } 415 | 416 | unregister_chrdev_region(dev, 1); 417 | 418 | if (avs_devp) { 419 | kfree(avs_devp); 420 | } 421 | } 422 | module_exit(avsdev_exit); 423 | 424 | MODULE_AUTHOR("Soft-Allwinner"); 425 | MODULE_DESCRIPTION("avs device driver"); 426 | MODULE_LICENSE("GPL"); 427 | MODULE_VERSION(DRV_VERSION); 428 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/media/video/sun4i_csi/Kconfig: -------------------------------------------------------------------------------- 1 | config CSI_DEV_SEL 2 | tristate 3 | 4 | config CSI0_SUN4I 5 | tristate "CSI0 v4l2 driver for sun4i" 6 | default m 7 | depends on CSI_DEV_SEL&&I2C && VIDEO_DEV && VIDEO_V4L2 8 | select VIDEOBUF_DMA_CONTIG 9 | 10 | config CSI1_SUN4I 11 | tristate "CSI1 v4l2 driver for sun4i" 12 | default m 13 | depends on CSI_DEV_SEL&&I2C && VIDEO_DEV && VIDEO_V4L2 14 | select VIDEOBUF_DMA_CONTIG 15 | 16 | config CSI_OV7670 17 | tristate "OmniVision OV7670 sensor support" 18 | depends on I2C && VIDEO_V4L2 19 | select CSI_DEV_SEL 20 | ---help--- 21 | This is a Video4Linux2 sensor-level driver for the OmniVision 22 | OV7670 VGA camera. 23 | 24 | config CSI_GT2005 25 | tristate "GalaxyCore GT2005 2M sensor support" 26 | depends on I2C && VIDEO_V4L2 27 | select CSI_DEV_SEL 28 | ---help--- 29 | This is a Video4Linux2 sensor-level driver for the GalaxyCore 30 | GT2005 2M camera. 31 | 32 | config CSI_GC0308 33 | tristate "GalaxyCore GC0308 VGA sensor support" 34 | depends on I2C && VIDEO_V4L2 35 | select CSI_DEV_SEL 36 | ---help--- 37 | This is a Video4Linux2 sensor-level driver for the GalaxyCore 38 | GC0308 VGA camera. 39 | 40 | 41 | config CSI_GC2035 42 | tristate "GC2035 2M sensor support" 43 | depends on I2C && VIDEO_V4L2 44 | select CSI_DEV_SEL 45 | ---help--- 46 | This is a Video4Linux2 sensor-level driver for the 47 | GC2035 2M camera. 48 | 49 | config CSI_HI704 50 | tristate "HYNIX HI704 VGA sensor support" 51 | depends on I2C && VIDEO_V4L2 52 | select CSI_DEV_SEL 53 | ---help--- 54 | This is a Video4Linux2 sensor-level driver for the Hynix 55 | HI704 VGA camera. 56 | 57 | config CSI_SP0838 58 | tristate "Superpix SP0838 VGA sensor support" 59 | depends on I2C && VIDEO_V4L2 60 | select CSI_DEV_SEL 61 | ---help--- 62 | This is a Video4Linux2 sensor-level driver for the Superpix 63 | SP0838 VGA camera. 64 | 65 | config CSI_MT9M112 66 | tristate "Micron MT9M112 UXGA sensor support" 67 | depends on I2C && VIDEO_V4L2 68 | select CSI_DEV_SEL 69 | ---help--- 70 | This is a Video4Linux2 sensor-level driver for the Micron 71 | MT9M112 UXGA camera. 72 | 73 | config CSI_MT9M113 74 | tristate "Micron MT9M113 SXGA sensor support" 75 | depends on I2C && VIDEO_V4L2 76 | select CSI_DEV_SEL 77 | ---help--- 78 | This is a Video4Linux2 sensor-level driver for the Micron 79 | MT9M113 SXGA camera. 80 | 81 | config CSI_OV2655 82 | tristate "OmniVision OV2655 UXGA sensor support" 83 | depends on I2C && VIDEO_V4L2 84 | select CSI_DEV_SEL 85 | ---help--- 86 | This is a Video4Linux2 sensor-level driver for the MOmniVision 87 | OV2655 UXGA camera. 88 | 89 | config CSI_HI253 90 | tristate "Hynix HI253 UXGA sensor support" 91 | depends on I2C && VIDEO_V4L2 92 | select CSI_DEV_SEL 93 | ---help--- 94 | This is a Video4Linux2 sensor-level driver for the Hynix 95 | HI253 UXGA camera. 96 | 97 | config CSI_MT9D112 98 | tristate "Micron MT9D112 UXGA sensor support" 99 | depends on I2C && VIDEO_V4L2 100 | select CSI_DEV_SEL 101 | ---help--- 102 | This is a Video4Linux2 sensor-level driver for the Micron 103 | MT9D112 UXGA camera. 104 | 105 | config CSI_GC0307 106 | tristate "GalaxyCore GC0307 VGA sensor support" 107 | depends on I2C && VIDEO_V4L2 108 | select CSI_DEV_SEL 109 | ---help--- 110 | This is a Video4Linux2 sensor-level driver for the GalaxyCore 111 | GC0307 VGA camera. 112 | 113 | config CSI_OV5640 114 | tristate "OmniVision OV5640 5M sensor support" 115 | depends on I2C && VIDEO_V4L2 116 | select CSI_DEV_SEL 117 | ---help--- 118 | This is a Video4Linux2 sensor-level driver for the OmniVision 119 | OV5640 5M camera. 120 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/media/video/sun4i_csi/device/Makefile: -------------------------------------------------------------------------------- 1 | obj-$(CONFIG_CSI_OV7670) += ov7670.o 2 | obj-$(CONFIG_CSI_GT2005) += gt2005.o 3 | obj-$(CONFIG_CSI_GC0308) += gc0308.o 4 | obj-$(CONFIG_CSI_GC2035) += gc2035.o 5 | obj-$(CONFIG_CSI_HI704) += hi704.o 6 | obj-$(CONFIG_CSI_SP0838) += sp0838.o 7 | obj-$(CONFIG_CSI_MT9M112) += mt9m112.o 8 | obj-$(CONFIG_CSI_MT9M113) += mt9m113.o 9 | obj-$(CONFIG_CSI_OV2655) += ov2655.o 10 | obj-$(CONFIG_CSI_HI253) += hi253.o 11 | obj-$(CONFIG_CSI_MT9D112) += mt9d112.o 12 | obj-$(CONFIG_CSI_GC0307) += gc0307.o 13 | obj-$(CONFIG_CSI_OV5640) += ov5640.o 14 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/media/video/sun4i_csi/device/gc2035.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/patch/linux-sunxi/drivers/media/video/sun4i_csi/device/gc2035.c -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/net/wireless/rtl8188eu/hal/rtl8188e/usb/rtl8188eu_led.c: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 | * 5 | * This program is free software; you can redistribute it and/or modify it 6 | * under the terms of version 2 of the GNU General Public License as 7 | * published by the Free Software Foundation. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 | * more details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 16 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 | * 18 | * 19 | ******************************************************************************/ 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | //================================================================================ 27 | // LED object. 28 | //================================================================================ 29 | 30 | 31 | //================================================================================ 32 | // Prototype of protected function. 33 | //================================================================================ 34 | 35 | 36 | //================================================================================ 37 | // LED_819xUsb routines. 38 | //================================================================================ 39 | 40 | // 41 | // Description: 42 | // Turn on LED according to LedPin specified. 43 | // 44 | void 45 | SwLedOn( 46 | _adapter *padapter, 47 | PLED_871x pLed 48 | ) 49 | { 50 | u8 LedCfg; 51 | HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); 52 | 53 | if( (padapter->bSurpriseRemoved == _TRUE) || ( padapter->bDriverStopped == _TRUE)) 54 | { 55 | return; 56 | } 57 | 58 | LedCfg = rtw_read8(padapter, REG_LEDCFG2); 59 | switch(pLed->LedPin) 60 | { 61 | case LED_PIN_LED0: 62 | rtw_write8(padapter, REG_LEDCFG2, (LedCfg&0xf0)|BIT5|BIT6); // SW control led0 on. 63 | // add by liaods for pcduino 64 | rtw_write8(padapter, REG_LEDCFG0, (LedCfg&0x70)|BIT5|BIT6); // SW control led0 on. 65 | break; 66 | 67 | case LED_PIN_LED1: 68 | rtw_write8(padapter, REG_LEDCFG2, (LedCfg&0x0f)|BIT5); // SW control led1 on. 69 | break; 70 | 71 | default: 72 | break; 73 | } 74 | 75 | pLed->bLedOn = _TRUE; 76 | } 77 | 78 | 79 | // 80 | // Description: 81 | // Turn off LED according to LedPin specified. 82 | // 83 | void 84 | SwLedOff( 85 | _adapter *padapter, 86 | PLED_871x pLed 87 | ) 88 | { 89 | u8 LedCfg; 90 | HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); 91 | 92 | if((padapter->bSurpriseRemoved == _TRUE) || ( padapter->bDriverStopped == _TRUE)) 93 | { 94 | goto exit; 95 | } 96 | 97 | 98 | LedCfg = rtw_read8(padapter, REG_LEDCFG2);//0x4E 99 | 100 | switch(pLed->LedPin) 101 | { 102 | case LED_PIN_LED0: 103 | if(pHalData->bLedOpenDrain == _TRUE) // Open-drain arrangement for controlling the LED) 104 | { 105 | LedCfg &= 0x90; // Set to software control. 106 | rtw_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3)); 107 | // add by liaods for pcduino 108 | rtw_write8(padapter, REG_LEDCFG0, (LedCfg|BIT3)); // SW control led0 on. 109 | 110 | LedCfg = rtw_read8(padapter, REG_MAC_PINMUX_CFG); 111 | LedCfg &= 0xFE; 112 | rtw_write8(padapter, REG_MAC_PINMUX_CFG, LedCfg); 113 | } 114 | else 115 | { 116 | rtw_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3|BIT5|BIT6)); 117 | rtw_write8(padapter, REG_LEDCFG0, (LedCfg|BIT3|BIT5|BIT6)); 118 | } 119 | break; 120 | 121 | case LED_PIN_LED1: 122 | LedCfg &= 0x0f; // Set to software control. 123 | rtw_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3)); 124 | break; 125 | 126 | default: 127 | break; 128 | } 129 | exit: 130 | pLed->bLedOn = _FALSE; 131 | 132 | } 133 | 134 | //================================================================================ 135 | // Interface to manipulate LED objects. 136 | //================================================================================ 137 | 138 | 139 | //================================================================================ 140 | // Default LED behavior. 141 | //================================================================================ 142 | 143 | // 144 | // Description: 145 | // Initialize all LED_871x objects. 146 | // 147 | void 148 | rtl8188eu_InitSwLeds( 149 | _adapter *padapter 150 | ) 151 | { 152 | struct led_priv *pledpriv = &(padapter->ledpriv); 153 | 154 | pledpriv->LedControlHandler = LedControl871x; 155 | 156 | InitLed871x(padapter, &(pledpriv->SwLed0), LED_PIN_LED0); 157 | 158 | InitLed871x(padapter,&(pledpriv->SwLed1), LED_PIN_LED1); 159 | } 160 | 161 | 162 | // 163 | // Description: 164 | // DeInitialize all LED_819xUsb objects. 165 | // 166 | void 167 | rtl8188eu_DeInitSwLeds( 168 | _adapter *padapter 169 | ) 170 | { 171 | struct led_priv *ledpriv = &(padapter->ledpriv); 172 | 173 | DeInitLed871x( &(ledpriv->SwLed0) ); 174 | DeInitLed871x( &(ledpriv->SwLed1) ); 175 | } 176 | 177 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/spi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for kernel SPI drivers. 3 | # 4 | 5 | ccflags-$(CONFIG_SPI_DEBUG) := -DDEBUG 6 | 7 | # small core, mostly translating board-specific 8 | # config declarations into driver model code 9 | obj-$(CONFIG_SPI_MASTER) += spi.o 10 | obj-$(CONFIG_SPI_SPIDEV) += spidev.o 11 | 12 | # SPI master controller drivers (bus) 13 | obj-$(CONFIG_SPI_ALTERA) += spi-altera.o 14 | obj-$(CONFIG_SPI_ATMEL) += spi-atmel.o 15 | obj-$(CONFIG_SPI_ATH79) += spi-ath79.o 16 | obj-$(CONFIG_SPI_AU1550) += spi-au1550.o 17 | obj-$(CONFIG_SPI_BCM63XX) += spi-bcm63xx.o 18 | obj-$(CONFIG_SPI_BFIN5XX) += spi-bfin5xx.o 19 | obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o 20 | obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o 21 | obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o 22 | obj-$(CONFIG_SPI_COLDFIRE_QSPI) += spi-coldfire-qspi.o 23 | obj-$(CONFIG_SPI_DAVINCI) += spi-davinci.o 24 | obj-$(CONFIG_SPI_DESIGNWARE) += spi-dw.o 25 | obj-$(CONFIG_SPI_DW_MMIO) += spi-dw-mmio.o 26 | obj-$(CONFIG_SPI_DW_PCI) += spi-dw-midpci.o 27 | spi-dw-midpci-objs := spi-dw-pci.o spi-dw-mid.o 28 | obj-$(CONFIG_SPI_EP93XX) += spi-ep93xx.o 29 | obj-$(CONFIG_SPI_FSL_LIB) += spi-fsl-lib.o 30 | obj-$(CONFIG_SPI_FSL_ESPI) += spi-fsl-espi.o 31 | obj-$(CONFIG_SPI_FSL_SPI) += spi-fsl-spi.o 32 | obj-$(CONFIG_SPI_GPIO) += spi-gpio.o 33 | obj-$(CONFIG_SPI_IMX) += spi-imx.o 34 | obj-$(CONFIG_SPI_LM70_LLP) += spi-lm70llp.o 35 | obj-$(CONFIG_SPI_MPC512x_PSC) += spi-mpc512x-psc.o 36 | obj-$(CONFIG_SPI_MPC52xx_PSC) += spi-mpc52xx-psc.o 37 | obj-$(CONFIG_SPI_MPC52xx) += spi-mpc52xx.o 38 | obj-$(CONFIG_SPI_NUC900) += spi-nuc900.o 39 | obj-$(CONFIG_SPI_OC_TINY) += spi-oc-tiny.o 40 | obj-$(CONFIG_SPI_OMAP_UWIRE) += spi-omap-uwire.o 41 | obj-$(CONFIG_SPI_OMAP_100K) += spi-omap-100k.o 42 | obj-$(CONFIG_SPI_OMAP24XX) += spi-omap2-mcspi.o 43 | obj-$(CONFIG_SPI_ORION) += spi-orion.o 44 | obj-$(CONFIG_SPI_PL022) += spi-pl022.o 45 | obj-$(CONFIG_SPI_PPC4xx) += spi-ppc4xx.o 46 | obj-$(CONFIG_SPI_PXA2XX) += spi-pxa2xx.o 47 | obj-$(CONFIG_SPI_PXA2XX_PCI) += spi-pxa2xx-pci.o 48 | obj-$(CONFIG_SPI_RSPI) += spi-rspi.o 49 | obj-$(CONFIG_SPI_S3C24XX) += spi-s3c24xx-hw.o 50 | spi-s3c24xx-hw-y := spi-s3c24xx.o 51 | spi-s3c24xx-hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi-s3c24xx-fiq.o 52 | obj-$(CONFIG_SPI_S3C64XX) += spi-s3c64xx.o 53 | obj-$(CONFIG_SPI_SH) += spi-sh.o 54 | obj-$(CONFIG_SPI_SH_HSPI) += spi-sh-hspi.o 55 | obj-$(CONFIG_SPI_SH_MSIOF) += spi-sh-msiof.o 56 | obj-$(CONFIG_SPI_SH_SCI) += spi-sh-sci.o 57 | obj-$(CONFIG_SPI_SIRF) += spi-sirf.o 58 | obj-$(CONFIG_SPI_STMP3XXX) += spi-stmp.o 59 | obj-$(CONFIG_SPI_TEGRA) += spi-tegra.o 60 | obj-$(CONFIG_SPI_TI_SSP) += spi-ti-ssp.o 61 | obj-$(CONFIG_SPI_TLE62X0) += spi-tle62x0.o 62 | obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o 63 | obj-$(CONFIG_SPI_TXX9) += spi-txx9.o 64 | obj-$(CONFIG_SPI_XILINX) += spi-xilinx.o 65 | obj-$(CONFIG_SPI_SUN4I) += spi_sunxi.o 66 | obj-$(CONFIG_SPI_SUN5I) += spi_sunxi.o 67 | obj-$(CONFIG_SPI_SUNXI) += spi_sunxi.o 68 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/usb/sunxi_usb/Kconfig: -------------------------------------------------------------------------------- 1 | # 2 | # softwinner SUNXI USB2.0 Dual Role Controller Driver. 3 | # 4 | 5 | #--------------------------------------------- 6 | #- 7 | #- config USB2.0 Dual Role Controller. 8 | #- 9 | #--------------------------------------------- 10 | menuconfig USB_SW_SUNXI_USB 11 | boolean "SUNXI USB2.0 Dual Role Controller support" 12 | depends on (ARCH_SUN4I || ARCH_SUN5I || ARCH_SUN7I) && USB_MUSB_SUNXI=n 13 | help 14 | SUNXI USB2.0 Dual Role Controller 15 | 16 | config USB_SW_SUNXI_USB_MANAGER 17 | boolean "SUNXI USB2.0 Manager" 18 | depends on USB_SW_SUNXI_USB 19 | help 20 | manager all usb controller. 21 | 22 | #--------------------------------------------- 23 | #- 24 | #- usb0 mode select. 25 | #- 26 | #--------------------------------------------- 27 | choice 28 | 29 | prompt "USB0 Controller support" 30 | depends on (USB_SW_SUNXI_USB && USB_SW_SUNXI_USB_MANAGER) 31 | default USB_SW_SUNXI_USB0_OTG 32 | help 33 | usb0 Controller mode select. choice "device only", then usb0 can only use for device. 34 | choice "host only", then usb0 can only use for host. choice "OTG", then usb0 can only 35 | use device and host. 36 | 37 | For "device only" and "OTG" modes, you need CONFIG_USB_SW_SUNXI_UDC0, "SoftWinner 38 | SUNXI USB Peripheral Controller", enabled under USB gadget config. 39 | 40 | config USB_SW_SUNXI_USB0_HOST_ONLY 41 | boolean "host only support" 42 | select USB_SW_SUNXI_HCD0 43 | help 44 | usb0 can only use for host. 45 | 46 | config USB_SW_SUNXI_USB0_OTG 47 | boolean "otg support" 48 | select USB_SW_SUNXI_HCD0 49 | select USB_SW_SUNXI_UDC0 50 | help 51 | usb0 can only use for device and host. 52 | 53 | config USB_SW_SUNXI_USB0_DEVICE_ONLY 54 | boolean "device only support" 55 | select USB_SW_SUNXI_UDC0 56 | # depends on USB_SW_SUNXI_UDC0 57 | depends on USB_GADGET 58 | help 59 | usb0 can only use for device. 60 | 61 | config USB_SW_SUNXI_USB0_NULL 62 | boolean "usb manager not support" 63 | help 64 | usb0 do not monitor hardware, then driver insmod should by application. 65 | 66 | 67 | 68 | endchoice 69 | 70 | config USB_SW_SUNXI_USB_DEBUG 71 | tristate "SUNXI USB driver debug message" 72 | depends on USB_SW_SUNXI_USB 73 | help 74 | SUNXI USB driver debug message. 75 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/usb/sunxi_usb/udc/sw_udc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/patch/linux-sunxi/drivers/usb/sunxi_usb/udc/sw_udc.c -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/video/sunxi/hdmi/dev_hdmi.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2012 Allwinner Technology Co., Ltd. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 17 | * MA 02111-1307 USA 18 | */ 19 | 20 | #include 21 | #include "dev_hdmi.h" 22 | #include "drv_hdmi_i.h" 23 | #include "../disp/dev_disp.h" 24 | 25 | static struct cdev *my_cdev; 26 | static dev_t devid; 27 | static struct class *hdmi_class; 28 | 29 | hdmi_info_t ghdmi; 30 | 31 | static struct resource hdmi_resource[1] = { 32 | [0] = { 33 | .start = 0x01c16000, 34 | .end = 0x01c165ff, 35 | .flags = IORESOURCE_MEM, 36 | }, 37 | }; 38 | 39 | static void 40 | hdmi_device_release(struct device *dev) 41 | { 42 | /* FILL ME! */ 43 | } 44 | 45 | static struct platform_device hdmi_device = { 46 | .name = "hdmi", 47 | .id = -1, 48 | .num_resources = ARRAY_SIZE(hdmi_resource), 49 | .resource = hdmi_resource, 50 | .dev = { 51 | .release = hdmi_device_release, 52 | } 53 | }; 54 | 55 | static int __devinit hdmi_probe(struct platform_device *pdev) 56 | { 57 | __inf("hdmi_probe call\n"); 58 | 59 | memset(&ghdmi, 0, sizeof(hdmi_info_t)); 60 | 61 | ghdmi.base_hdmi = 0xf1c16000; 62 | 63 | Hdmi_init(pdev); 64 | Fb_Init(SUNXI_HDMI); 65 | 66 | return 0; 67 | } 68 | 69 | static int hdmi_remove(struct platform_device *pdev) 70 | { 71 | __inf("hdmi_remove call\n"); 72 | 73 | Hdmi_exit(pdev); 74 | 75 | return 0; 76 | } 77 | 78 | static int 79 | hdmi_suspend(struct platform_device *pdev, pm_message_t state) 80 | { 81 | return 0; 82 | } 83 | 84 | static int 85 | hdmi_resume(struct platform_device *pdev) 86 | { 87 | return 0; 88 | } 89 | 90 | static struct platform_driver hdmi_driver = { 91 | .probe = hdmi_probe, 92 | .remove = hdmi_remove, 93 | .suspend = hdmi_suspend, 94 | .resume = hdmi_resume, 95 | .driver = { 96 | .name = "hdmi", 97 | .owner = THIS_MODULE, 98 | }, 99 | }; 100 | 101 | static int hdmi_open(struct inode *inode, struct file *file) 102 | { 103 | return 0; 104 | } 105 | 106 | static int hdmi_release(struct inode *inode, struct file *file) 107 | { 108 | return 0; 109 | } 110 | 111 | static ssize_t hdmi_read(struct file *file, char __user *buf, size_t count, 112 | loff_t *ppos) 113 | { 114 | return -EINVAL; 115 | } 116 | 117 | static ssize_t hdmi_write(struct file *file, 118 | const char __user *buf, size_t count, loff_t *ppos) 119 | { 120 | return -EINVAL; 121 | } 122 | 123 | static int hdmi_mmap(struct file *file, struct vm_area_struct *vma) 124 | { 125 | return 0; 126 | } 127 | 128 | static long hdmi_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 129 | { 130 | return 0; 131 | } 132 | 133 | static const struct file_operations hdmi_fops = { 134 | .owner = THIS_MODULE, 135 | .open = hdmi_open, 136 | .release = hdmi_release, 137 | .write = hdmi_write, 138 | .read = hdmi_read, 139 | .unlocked_ioctl = hdmi_ioctl, 140 | .mmap = hdmi_mmap, 141 | }; 142 | 143 | static int __init 144 | hdmi_module_init(void) 145 | { 146 | int ret = 0, err; 147 | 148 | __inf("hdmi_module_init\n"); 149 | 150 | alloc_chrdev_region(&devid, 0, 1, "hdmi"); 151 | my_cdev = cdev_alloc(); 152 | cdev_init(my_cdev, &hdmi_fops); 153 | my_cdev->owner = THIS_MODULE; 154 | err = cdev_add(my_cdev, devid, 1); 155 | if (err) { 156 | __wrn("cdev_add fail.\n"); 157 | return -1; 158 | } 159 | 160 | hdmi_class = class_create(THIS_MODULE, "hdmi"); 161 | if (IS_ERR(hdmi_class)) { 162 | __wrn("class_create fail\n"); 163 | return -1; 164 | } 165 | 166 | ret = platform_device_register(&hdmi_device); 167 | 168 | if (ret == 0) 169 | ret = platform_driver_register(&hdmi_driver); 170 | 171 | return ret; 172 | } 173 | 174 | static void __exit hdmi_module_exit(void) 175 | { 176 | __inf("hdmi_module_exit\n"); 177 | 178 | platform_driver_unregister(&hdmi_driver); 179 | platform_device_unregister(&hdmi_device); 180 | 181 | class_destroy(hdmi_class); 182 | 183 | cdev_del(my_cdev); 184 | } 185 | 186 | //late_initcall(hdmi_module_init); 187 | module_init(hdmi_module_init); 188 | module_exit(hdmi_module_exit); 189 | 190 | MODULE_AUTHOR("danling_xiao"); 191 | MODULE_DESCRIPTION("hdmi driver"); 192 | MODULE_LICENSE("GPL"); 193 | MODULE_ALIAS("platform:hdmi"); 194 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/video/sunxi/hdmi/drv_hdmi.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2012 Allwinner Technology Co., Ltd. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 17 | * MA 02111-1307 USA 18 | */ 19 | 20 | /* 21 | * Semaphore stuff seems quite broken in here. --libv 22 | */ 23 | #include "drv_hdmi_i.h" 24 | #include "hdmi_core.h" 25 | #include "dev_hdmi.h" 26 | #include "../disp/dev_disp.h" 27 | 28 | 29 | /* 30 | * Bad separation! 31 | * symbol from sound/soc/sun[45]i/hdmiaudio/sndhdmi.c 32 | */ 33 | extern void audio_set_hdmi_func(__audio_hdmi_func *hdmi_func); 34 | 35 | 36 | static struct semaphore *run_sem; 37 | static struct task_struct *HDMI_task; 38 | void __iomem *hdmi_base; 39 | 40 | 41 | static __s32 Hdmi_enable(__bool enable) 42 | { 43 | if ((video_enable != enable) && 44 | (hdmi_state >= HDMI_State_Video_config)) 45 | hdmi_state = HDMI_State_Video_config; 46 | 47 | video_enable = enable; 48 | 49 | return 0; 50 | } 51 | 52 | static __s32 hdmi_wait_edid(void) 53 | { 54 | unsigned long start = jiffies; 55 | 56 | while (time_before(jiffies, start + 10 * HZ)) { /* Wait max 10 sec */ 57 | if (hdmi_state > HDMI_State_EDID_Parse) { 58 | pr_info("waited %ld ms for EDID info\n", 59 | (jiffies - start) * 1000 / HZ); 60 | if (!Device_Support_VIC[HDMI_EDID]) { 61 | pr_warn("No valid EDID mode found\n"); 62 | return -1; 63 | } 64 | return 0; 65 | } 66 | hdmi_delay_ms(1); 67 | } 68 | pr_warn("Timeout waiting for EDID info\n"); 69 | return -1; 70 | } 71 | 72 | static __s32 Hdmi_open(void) 73 | { 74 | __inf("[Hdmi_open]\n"); 75 | 76 | Hdmi_enable(1); 77 | 78 | #if 0 79 | if (ghdmi.bopen == 0) 80 | up(run_sem); 81 | #endif 82 | 83 | ghdmi.bopen = 1; 84 | 85 | return 0; 86 | } 87 | 88 | static __s32 Hdmi_close(void) 89 | { 90 | __inf("[Hdmi_close]\n"); 91 | 92 | Hdmi_enable(0); 93 | ghdmi.bopen = 0; 94 | 95 | return 0; 96 | } 97 | 98 | /* Translate a fex tv-mode into a VIC as used in the hdmi code */ 99 | static __u32 Hdmi_tv_mode_to_hdmi_mode(__disp_tv_mode_t mode) 100 | { 101 | switch (mode) { 102 | case DISP_TV_MOD_480I: 103 | return HDMI1440_480I; 104 | case DISP_TV_MOD_576I: 105 | return HDMI1440_576I; 106 | case DISP_TV_MOD_480P: 107 | return HDMI480P; 108 | case DISP_TV_MOD_576P: 109 | return HDMI576P; 110 | case DISP_TV_MOD_720P_50HZ: 111 | return HDMI720P_50; 112 | case DISP_TV_MOD_720P_60HZ: 113 | return HDMI720P_60; 114 | case DISP_TV_MOD_1080I_50HZ: 115 | return HDMI1080I_50; 116 | case DISP_TV_MOD_1080I_60HZ: 117 | return HDMI1080I_60; 118 | case DISP_TV_MOD_1080P_24HZ: 119 | return HDMI1080P_24; 120 | case DISP_TV_MOD_1080P_50HZ: 121 | return HDMI1080P_50; 122 | case DISP_TV_MOD_1080P_60HZ: 123 | return HDMI1080P_60; 124 | case DISP_TV_MOD_1080P_24HZ_3D_FP: 125 | return HDMI1080P_24_3D_FP; 126 | case DISP_TV_MOD_720P_50HZ_3D_FP: 127 | return HDMI720P_50_3D_FP; 128 | case DISP_TV_MOD_720P_60HZ_3D_FP: 129 | return HDMI720P_60_3D_FP; 130 | case DISP_TV_MOD_H1360_V768_60HZ: 131 | return HDMI1360_768_60; 132 | case DISP_TV_MOD_H1280_V1024_60HZ: 133 | return HDMI1280_1024_60; 134 | case DISP_TV_MOD_H640_V480_60HZ: 135 | return HDMI640_480_60; 136 | case DISP_TV_MOD_H640_V480_72HZ: 137 | return HDMI640_480_72; 138 | case DISP_TV_MODE_EDID: 139 | if (!Device_Support_VIC[HDMI_EDID]) { 140 | pr_err("EDID mode used without valid EDID info\n"); 141 | /* FIXME: fix display issue if NO HDMI connected during power up reset */ 142 | #ifdef CONFIG_SUNXI_DVI_FIX 143 | Device_Support_VIC[HDMI_EDID]=1; 144 | #else 145 | return 0; 146 | #endif 147 | } 148 | return HDMI_EDID; 149 | default: 150 | __wrn("unsupported video mode %d\n", mode); 151 | return 0; 152 | } 153 | } 154 | 155 | static __s32 Hdmi_set_display_mode(__disp_tv_mode_t mode) 156 | { 157 | __u32 hdmi_mode; 158 | 159 | __inf("[Hdmi_set_display_mode],mode:%d\n", mode); 160 | 161 | hdmi_mode = Hdmi_tv_mode_to_hdmi_mode(mode); 162 | if (!hdmi_mode) 163 | return -1; 164 | 165 | ghdmi.mode = mode; 166 | if (hdmi_mode != video_mode) { 167 | if (hdmi_state >= HDMI_State_Video_config) 168 | hdmi_state = HDMI_State_Video_config; 169 | 170 | video_mode = hdmi_mode; 171 | } 172 | return 0; 173 | } 174 | 175 | static __s32 Hdmi_set_display_videomode(const struct __disp_video_timing *mode) 176 | { 177 | __inf("[Hdmi_set_display_videomode]\n"); 178 | 179 | if (video_mode != HDMI_EDID) 180 | return -1; 181 | 182 | if (memcmp(mode, &video_timing[video_timing_edid], 183 | sizeof(struct __disp_video_timing)) != 0) { 184 | 185 | if (hdmi_state >= HDMI_State_Video_config) 186 | hdmi_state = HDMI_State_Video_config; 187 | 188 | memcpy(&video_timing[video_timing_edid], mode, 189 | sizeof(struct __disp_video_timing)); 190 | 191 | } 192 | 193 | return 0; 194 | } 195 | 196 | static __s32 Hdmi_Audio_Enable(__u8 mode, __u8 channel) 197 | { 198 | __inf("[Hdmi_Audio_Enable],ch:%d\n", channel); 199 | 200 | /* ???????????????????????? */ 201 | if (hdmi_state >= HDMI_State_Audio_config) 202 | hdmi_state = HDMI_State_Audio_config; 203 | 204 | audio_info.audio_en = (channel == 0) ? 0 : 1; 205 | 206 | return 0; 207 | } 208 | 209 | static __s32 Hdmi_Set_Audio_Para(hdmi_audio_t *audio_para) 210 | { 211 | __inf("[Hdmi_Set_Audio_Para]\n"); 212 | 213 | if (!audio_para) 214 | return -1; 215 | 216 | if (audio_para->sample_rate != audio_info.sample_rate) { 217 | if (hdmi_state >= HDMI_State_Audio_config) 218 | hdmi_state = HDMI_State_Audio_config; 219 | audio_info.sample_rate = audio_para->sample_rate; 220 | /* audio_info.channel_num = 2; */ 221 | 222 | __inf("sample_rate:%d in Hdmi_hal_set_audio_para\n", 223 | audio_info.sample_rate); 224 | } 225 | if (audio_para->channel_num != audio_info.channel_num) { 226 | if (hdmi_state >= HDMI_State_Audio_config) 227 | hdmi_state = HDMI_State_Audio_config; 228 | audio_info.channel_num = audio_para->channel_num; 229 | 230 | __inf("channel_num:%d in Hdmi_hal_set_audio_para\n", 231 | audio_info.channel_num); 232 | } 233 | 234 | return 0; 235 | } 236 | 237 | static __s32 Hdmi_mode_support(__disp_tv_mode_t mode) 238 | { 239 | __u32 hdmi_mode = Hdmi_tv_mode_to_hdmi_mode(mode); 240 | 241 | if (hdmi_mode == 0 || Hpd_Check() == 0) 242 | return 0; 243 | 244 | while (hdmi_state < HDMI_State_Wait_Video_config) 245 | hdmi_delay_ms(1); 246 | 247 | return Device_Support_VIC[hdmi_mode]; 248 | } 249 | 250 | static __s32 hdmi_get_video_timing(__disp_tv_mode_t mode, 251 | struct __disp_video_timing *video_timing_dest) 252 | { 253 | __u32 hdmi_mode; 254 | __s32 vic_tab; 255 | 256 | hdmi_mode = Hdmi_tv_mode_to_hdmi_mode(mode); 257 | if (!hdmi_mode) 258 | return -1; 259 | 260 | vic_tab = get_video_info(hdmi_mode); 261 | if (vic_tab == -1) 262 | return -1; 263 | 264 | memcpy(video_timing_dest, &video_timing[vic_tab], 265 | sizeof(struct __disp_video_timing)); 266 | return 0; 267 | } 268 | 269 | static __s32 Hdmi_get_HPD_status(void) 270 | { 271 | return Hpd_Check(); 272 | } 273 | 274 | static __s32 275 | Hdmi_set_pll(__u32 pll, __u32 clk) 276 | { 277 | hdmi_pll = pll; 278 | hdmi_clk = clk; 279 | return 0; 280 | } 281 | 282 | static int 283 | Hdmi_run_thread(void *parg) 284 | { 285 | while (1) { 286 | hdmi_main_task_loop(); 287 | 288 | if (kthread_should_stop()) 289 | break; 290 | 291 | if (hdmi_state == HDMI_State_Wait_Hpd || 292 | hdmi_state == HDMI_State_Playback) 293 | hdmi_delay_ms(2000); 294 | else 295 | hdmi_delay_ms(1); 296 | } 297 | 298 | return 0; 299 | } 300 | 301 | __s32 Hdmi_init(struct platform_device *dev) 302 | { 303 | __audio_hdmi_func audio_func; 304 | __disp_hdmi_func disp_func; 305 | int err = 0; 306 | 307 | run_sem = kmalloc(sizeof(struct semaphore), GFP_KERNEL | __GFP_ZERO); 308 | sema_init((struct semaphore *)run_sem, 0); 309 | 310 | hdmi_base = (void __iomem *) ghdmi.base_hdmi; 311 | hdmi_core_initial(); 312 | err = hdmi_i2c_sunxi_probe(dev); 313 | if (err) 314 | return err; 315 | 316 | audio_info.channel_num = 2; 317 | #if 0 318 | { /* for audio test */ 319 | hdmi_audio_t audio_para; 320 | 321 | audio_para.ch0_en = 1; 322 | audio_para.sample_rate = 44100; 323 | Hdmi_hal_set_audio_para(&audio_para); 324 | 325 | Hdmi_hal_audio_enable(0, 1); 326 | } 327 | #endif 328 | 329 | 330 | /* Run main task once, should give EDID information directly */ 331 | hdmi_main_task_loop(); 332 | 333 | HDMI_task = kthread_create(Hdmi_run_thread, (void *)0, "hdmi proc"); 334 | if (IS_ERR(HDMI_task)) { 335 | __s32 err = 0; 336 | 337 | __wrn("Unable to start kernel thread %s.\n", "hdmi proc"); 338 | err = PTR_ERR(HDMI_task); 339 | HDMI_task = NULL; 340 | return err; 341 | } 342 | /* Launch main task loop */ 343 | wake_up_process(HDMI_task); 344 | 345 | 346 | audio_func.hdmi_audio_enable = Hdmi_Audio_Enable; 347 | audio_func.hdmi_set_audio_para = Hdmi_Set_Audio_Para; 348 | audio_set_hdmi_func(&audio_func); 349 | 350 | disp_func.hdmi_wait_edid = hdmi_wait_edid; 351 | disp_func.Hdmi_open = Hdmi_open; 352 | disp_func.Hdmi_close = Hdmi_close; 353 | disp_func.hdmi_set_mode = Hdmi_set_display_mode; 354 | disp_func.hdmi_set_videomode = Hdmi_set_display_videomode; 355 | disp_func.hdmi_mode_support = Hdmi_mode_support; 356 | disp_func.hdmi_get_video_timing = hdmi_get_video_timing; 357 | disp_func.hdmi_get_HPD_status = Hdmi_get_HPD_status; 358 | disp_func.hdmi_set_pll = Hdmi_set_pll; 359 | disp_set_hdmi_func(&disp_func); 360 | 361 | return 0; 362 | } 363 | 364 | __s32 Hdmi_exit(struct platform_device *dev) 365 | { 366 | 367 | kfree(run_sem); 368 | run_sem = NULL; 369 | 370 | if (HDMI_task) { 371 | kthread_stop(HDMI_task); 372 | HDMI_task = NULL; 373 | } 374 | 375 | hdmi_i2c_sunxi_remove(dev); 376 | 377 | return 0; 378 | } 379 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/video/sunxi/hdmi/hdmi_core.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2012 Allwinner Technology Co., Ltd. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 17 | * MA 02111-1307 USA 18 | */ 19 | 20 | #ifndef __HDMI_CORE_H__ 21 | #define __HDMI_CORE_H__ 22 | 23 | #include "drv_hdmi_i.h" 24 | 25 | extern void __iomem *hdmi_base; 26 | 27 | #define HDMI_DEVICE_SUPPORT_VIC_SIZE 512 28 | 29 | #define HDMI_State_Wait_Hpd 0x02 30 | #define HDMI_State_Rx_Sense 0x03 31 | #define HDMI_State_EDID_Parse 0x04 32 | #define HDMI_State_Wait_Video_config 0x05 33 | #define HDMI_State_Video_config 0x06 34 | #define HDMI_State_Audio_config 0x07 35 | #define HDMI_State_Playback 0x09 36 | 37 | #define HDMI1440_480I 6 38 | #define HDMI1440_576I 21 39 | #define HDMI480P 2 40 | #define HDMI576P 17 41 | #define HDMI720P_50 19 42 | #define HDMI720P_60 4 43 | #define HDMI1080I_50 20 44 | #define HDMI1080I_60 5 45 | #define HDMI1080P_50 31 46 | #define HDMI1080P_60 16 47 | #define HDMI1080P_24 32 48 | #define HDMI1080P_25 33 49 | #define HDMI1080P_24_3D_FP (HDMI1080P_24 + 0x80) 50 | #define HDMI720P_50_3D_FP (HDMI720P_50 + 0x80) 51 | #define HDMI720P_60_3D_FP (HDMI720P_60 + 0x80) 52 | 53 | /* Non CEA-861-D modes */ 54 | #define HDMI_NON_CEA861D_START 256 55 | #define HDMI1360_768_60 (HDMI_NON_CEA861D_START + 0) 56 | #define HDMI1280_1024_60 (HDMI_NON_CEA861D_START + 1) 57 | #define HDMI640_480_60 (HDMI_NON_CEA861D_START + 2) 58 | #define HDMI640_480_72 (HDMI_NON_CEA861D_START + 3) 59 | #define HDMI_EDID (HDMI_DEVICE_SUPPORT_VIC_SIZE - 1) 60 | 61 | #define HDMI_WUINT32(offset, value) writel(value, HDMI_BASE + offset) 62 | #define HDMI_RUINT32(offset) readl(HDMI_BASE + offset) 63 | #define HDMI_WUINT16(offset, value) writew(value, HDMI_BASE + offset) 64 | #define HDMI_RUINT16(offset) readw(HDMI_BASE + offset) 65 | #define HDMI_WUINT8(offset, value) writeb(value, HDMI_BASE + offset) 66 | #define HDMI_RUINT8(offset) readb(HDMI_BASE + offset) 67 | 68 | #define Abort_Current_Operation 0 69 | #define Special_Offset_Address_Read 1 70 | #define Explicit_Offset_Address_Write 2 71 | #define Implicit_Offset_Address_Write 3 72 | #define Explicit_Offset_Address_Read 4 73 | #define Implicit_Offset_Address_Read 5 74 | #define Explicit_Offset_Address_E_DDC_Read 6 75 | #define Implicit_Offset_Address_E_DDC_Read 7 76 | 77 | typedef struct audio_timing { 78 | 79 | unsigned long supported_rates; 80 | 81 | __s32 audio_en; 82 | __s32 sample_rate; 83 | __s32 channel_num; 84 | 85 | __s32 CTS; 86 | __s32 ACR_N; 87 | __s32 CH_STATUS0; 88 | __s32 CH_STATUS1; 89 | 90 | } HDMI_AUDIO_INFO; 91 | 92 | void hdmi_delay_ms(__u32 t); 93 | __s32 hdmi_core_initial(void); 94 | __s32 hdmi_core_open(void); 95 | __s32 hdmi_core_close(void); 96 | __s32 hdmi_main_task_loop(void); 97 | __s32 Hpd_Check(void); 98 | __s32 ParseEDID(void); 99 | __s32 video_config(__s32 vic); 100 | __s32 audio_config(void); 101 | __s32 get_video_info(__s32 vic); 102 | 103 | extern __u32 hdmi_pll; /* 0: video pll 0; 1: video pll 1 */ 104 | extern __u32 hdmi_clk; 105 | extern struct i2c_adapter sunxi_hdmi_i2c_adapter; 106 | int hdmi_i2c_sunxi_probe(struct platform_device *dev); 107 | int hdmi_i2c_sunxi_remove(struct platform_device *dev); 108 | 109 | extern __u8 Device_Support_VIC[HDMI_DEVICE_SUPPORT_VIC_SIZE]; 110 | 111 | extern __bool video_enable; 112 | extern __s32 hdmi_state; 113 | extern __s32 video_mode; 114 | extern HDMI_AUDIO_INFO audio_info; 115 | 116 | extern struct __disp_video_timing video_timing[]; 117 | extern const int video_timing_edid; 118 | 119 | #ifdef CONFIG_SUNXI_DVI_FIX 120 | #define HDMI_MODE 0 121 | #define DVI_MODE 1 122 | int get_hdmi_mode(void); 123 | #endif 124 | 125 | #endif 126 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/video/sunxi/hdmi/hdmi_i2c.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013 Jari Helaakoski 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 | * more details. 13 | */ 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include "../disp/sunxi_disp_regs.h" 24 | #include "hdmi_core.h" 25 | 26 | #define Abort_Current_Operation 0 27 | #define Special_Offset_Address_Read 1 28 | #define Explicit_Offset_Address_Write 2 29 | #define Implicit_Offset_Address_Write 3 30 | #define Explicit_Offset_Address_Read 4 31 | #define Implicit_Offset_Address_Read 5 32 | #define Explicit_Offset_Address_E_DDC_Read 6 33 | #define Implicit_Offset_Address_E_DDC_Read 7 34 | 35 | #define Command_Ok 0x11 36 | 37 | struct i2c_adapter sunxi_hdmi_i2c_adapter; 38 | 39 | static int init_connection(void __iomem *base_addr) 40 | { 41 | /* Make sure that HDMI core functionality is initialized. 42 | Currently support I2C only when HDMI is connected */ 43 | if (!(readl(HDMI_HPD) & 0x01)) { 44 | pr_info("HDMI not connected\n"); 45 | return -EIO; 46 | } 47 | 48 | /* Reset */ 49 | writel(0, HDMI_I2C_GENERAL_2); 50 | writel(0x80000001, HDMI_I2C_GENERAL); 51 | hdmi_delay_ms(1); 52 | 53 | if (readl(HDMI_I2C_GENERAL) & 0x1) { 54 | pr_info("EDID not ready\n"); 55 | return -EIO; 56 | } 57 | 58 | /* N = 5,M=1 Fscl= Ftmds/2/10/2^N/(M+1) */ 59 | writel(0x0d, HDMI_I2C_CLK); 60 | 61 | /* ddc address 0x60 */ 62 | /*writeb(0x60, HDMI_BASE + HDMI_I2C_LINE_CTRL);*/ 63 | 64 | /* slave address 0xa0 */ 65 | /*writeb(0xa0 >> 1, HDMI_BASE + HDMI_I2C_LINE_CTRL);*/ 66 | 67 | /* enable analog sda/scl pad */ 68 | writel((0 << 12) | (3 << 8), HDMI_I2C_LINE_CTRL); 69 | return 0; 70 | } 71 | 72 | static int do_command(void __iomem *base_addr, 73 | int command, u8 address, u8 len, u8 chip_addr) 74 | { 75 | __u32 begin_ms, end_ms; 76 | u8 block = 0; 77 | 78 | /* set FIFO read */ 79 | writel(readl(HDMI_I2C_GENERAL) & 0xfffffeff, 80 | HDMI_I2C_GENERAL); 81 | 82 | writel((block << 24) | (0x60 << 16) | (chip_addr << 8) | 83 | address, HDMI_I2C_ADDR); 84 | 85 | /* FIFO address clear */ 86 | writel(readl(HDMI_I2C_GENERAL_2) | 0x80000000, 87 | HDMI_I2C_GENERAL_2); 88 | 89 | /* nbyte to access */ 90 | writel(len, HDMI_I2C_DATA_LENGTH); 91 | 92 | /* set cmd type */ 93 | writel(command, HDMI_I2C_CMD); 94 | 95 | /* start and cmd */ 96 | writel(readl(HDMI_I2C_GENERAL) | 0x40000000, 97 | HDMI_I2C_GENERAL); 98 | 99 | begin_ms = (jiffies * 1000) / HZ; 100 | while (readl(HDMI_I2C_GENERAL) & 0x40000000) { 101 | end_ms = (jiffies * 1000) / HZ; 102 | if ((end_ms - begin_ms) > 1000) { 103 | pr_warning("ddc read timeout 0x%X\n", 104 | readl(HDMI_I2C_GENERAL)); 105 | return -ETIMEDOUT; 106 | } 107 | schedule(); 108 | } 109 | 110 | if (Command_Ok != readl(HDMI_I2C_STATUS)) 111 | return -EIO; 112 | 113 | return 0; 114 | } 115 | 116 | static int do_read(void __iomem *base_addr, 117 | struct i2c_msg *msg, int command, u8 chip_addr) 118 | { 119 | int i = 0; 120 | int err = 0; 121 | u8 bufPos = 0; 122 | 123 | while (bufPos < msg->len) { 124 | u8 readLen = (msg->len > 16) ? 16 : msg->len; 125 | 126 | err = do_command(base_addr, command, 127 | msg->addr, readLen, 128 | chip_addr); 129 | 130 | if (err != 0) 131 | return err; 132 | 133 | for (i = 0; i < readLen; i++) 134 | *msg->buf++ = readb(HDMI_I2C_DATA); 135 | 136 | bufPos += readLen; 137 | chip_addr += readLen; 138 | } 139 | return err; 140 | } 141 | 142 | static int hdmi_i2c_sunxi_xfer(struct i2c_adapter *adap, 143 | struct i2c_msg *msgs, int num) 144 | { 145 | int i = 0; 146 | int err = 0; 147 | u8 chip_addr = 0; 148 | int command = Implicit_Offset_Address_Read; 149 | void __iomem *base_addr = (void __iomem *)adap->algo_data; 150 | 151 | if (init_connection(base_addr)) 152 | return -EIO; 153 | 154 | for (i = 0; i < num; i++) { 155 | if (msgs[i].flags & I2C_M_RD) { 156 | err = do_read(base_addr, &msgs[i], command, chip_addr); 157 | } else { 158 | command = Explicit_Offset_Address_Read; 159 | chip_addr = *msgs[i].buf; 160 | err = do_command(base_addr, command, 161 | msgs[i].addr, 0, 162 | chip_addr); 163 | } 164 | 165 | pr_debug("%s msgs[i].addr:0x%X msgs[i].len:%i" 166 | " msgs[i].flags:0x%X err:%i\n", 167 | __func__, msgs[i].addr, msgs[i].len, 168 | msgs[i].flags, err); 169 | 170 | if (err) 171 | break; 172 | 173 | } 174 | 175 | if (err) 176 | return err; 177 | 178 | return i; 179 | } 180 | 181 | static unsigned int hdmi_i2c_sunxi_functionality(struct i2c_adapter *adap) 182 | { 183 | return I2C_FUNC_I2C|I2C_FUNC_SMBUS_EMUL; 184 | } 185 | 186 | static const struct i2c_algorithm hdmi_i2c_sunxi_algorithm = { 187 | .master_xfer = hdmi_i2c_sunxi_xfer, 188 | .functionality = hdmi_i2c_sunxi_functionality, 189 | }; 190 | 191 | int hdmi_i2c_sunxi_probe(struct platform_device *dev) 192 | { 193 | int ret; 194 | strlcpy(sunxi_hdmi_i2c_adapter.name, "sunxi-hdmi-i2c", 195 | sizeof(sunxi_hdmi_i2c_adapter.name)); 196 | sunxi_hdmi_i2c_adapter.owner = THIS_MODULE; 197 | sunxi_hdmi_i2c_adapter.retries = 2; 198 | sunxi_hdmi_i2c_adapter.timeout = 5*HZ; 199 | sunxi_hdmi_i2c_adapter.class = I2C_CLASS_DDC; 200 | sunxi_hdmi_i2c_adapter.algo = &hdmi_i2c_sunxi_algorithm; 201 | sunxi_hdmi_i2c_adapter.dev.parent = &dev->dev; 202 | sunxi_hdmi_i2c_adapter.algo_data = (void *)0xf1c16000; 203 | sunxi_hdmi_i2c_adapter.nr = 10; 204 | 205 | 206 | //ret = i2c_add_adapter(&sunxi_hdmi_i2c_adapter); 207 | ret = i2c_add_numbered_adapter(&sunxi_hdmi_i2c_adapter); 208 | if (ret < 0) { 209 | pr_warning("I2C: Failed to add bus\n"); 210 | return ret; 211 | } 212 | 213 | platform_set_drvdata(dev, &sunxi_hdmi_i2c_adapter); 214 | 215 | 216 | 217 | pr_info("I2C: %s: HDMI I2C adapter\n", 218 | dev_name(&sunxi_hdmi_i2c_adapter.dev)); 219 | return 0; 220 | } 221 | 222 | int hdmi_i2c_sunxi_remove(struct platform_device *dev) 223 | { 224 | struct i2c_adapter *i2c = platform_get_drvdata(dev); 225 | if (i2c) 226 | i2c_del_adapter(i2c); 227 | 228 | return 0; 229 | } 230 | 231 | #if 0 /* Legacy comment */ 232 | void send_ini_sequence() 233 | { 234 | int i, j; 235 | 236 | set_wbit(HDMI_I2C_UNKNOWN_0, BIT3); 237 | for (i = 0; i < 9; i++) { 238 | for (j = 0; j < 200; j++) /*for simulation, delete it*/ 239 | ; 240 | clr_wbit(HDMI_I2C_UNKNOWN_0, BIT2); 241 | 242 | for (j = 0; j < 200; j++) /*for simulation, delete it*/ 243 | ; 244 | set_wbit(HDMI_I2C_UNKNOWN_0, BIT2); 245 | } 246 | 247 | clr_wbit(HDMI_I2C_UNKNOWN_0, BIT3); 248 | clr_wbit(HDMI_I2C_UNKNOWN_0, BIT1); 249 | } 250 | #endif 251 | -------------------------------------------------------------------------------- /patch/linux-sunxi/drivers/video/sunxi/lcd/dev_lcd.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2012 Allwinner Technology Co., Ltd. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 17 | * MA 02111-1307 USA 18 | */ 19 | 20 | #include 21 | #include "dev_lcd.h" 22 | #include "lcd_panel_cfg.h" 23 | 24 | #include "../disp/disp_lcd.h" 25 | #include "../disp/dev_disp.h" 26 | 27 | static struct cdev *my_cdev; 28 | static dev_t devid; 29 | static struct class *lcd_class; 30 | 31 | static int 32 | lcd_open(struct inode *inode, struct file *file) 33 | { 34 | return 0; 35 | } 36 | 37 | static int 38 | lcd_release(struct inode *inode, struct file *file) 39 | { 40 | return 0; 41 | } 42 | 43 | static ssize_t 44 | lcd_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) 45 | { 46 | return -EINVAL; 47 | } 48 | 49 | static ssize_t 50 | lcd_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) 51 | { 52 | return -EINVAL; 53 | } 54 | 55 | static int 56 | lcd_mmap(struct file *file, struct vm_area_struct *vma) 57 | { 58 | return 0; 59 | } 60 | 61 | static long 62 | lcd_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 63 | { 64 | return 0; 65 | } 66 | 67 | static const struct file_operations lcd_fops = { 68 | .owner = THIS_MODULE, 69 | .open = lcd_open, 70 | .release = lcd_release, 71 | .write = lcd_write, 72 | .read = lcd_read, 73 | .unlocked_ioctl = lcd_ioctl, 74 | .mmap = lcd_mmap, 75 | }; 76 | 77 | static int 78 | lcd_init(void) 79 | { 80 | static __lcd_panel_fun_t lcd0_cfg; 81 | static __lcd_panel_fun_t lcd1_cfg; 82 | 83 | LCD_get_panel_funs_generic(&lcd0_cfg); 84 | LCD_get_panel_funs_generic(&lcd1_cfg); 85 | 86 | LCD_get_panel_funs_0(&lcd0_cfg); 87 | LCD_get_panel_funs_1(&lcd1_cfg); 88 | LCD_set_panel_funs(&lcd0_cfg, &lcd1_cfg); 89 | 90 | Fb_Init(SUNXI_LCD); 91 | 92 | return 0; 93 | } 94 | 95 | static int 96 | __init lcd_module_init(void) 97 | { 98 | int ret = 0, err; 99 | 100 | __inf("lcd_module_init\n"); 101 | 102 | alloc_chrdev_region(&devid, 0, 1, "lcd"); 103 | my_cdev = cdev_alloc(); 104 | cdev_init(my_cdev, &lcd_fops); 105 | my_cdev->owner = THIS_MODULE; 106 | err = cdev_add(my_cdev, devid, 1); 107 | if (err) { 108 | __wrn("cdev_add fail.\n"); 109 | return -1; 110 | } 111 | 112 | lcd_class = class_create(THIS_MODULE, "sunxi-lcd"); 113 | if (IS_ERR(lcd_class)) { 114 | __wrn("class_create fail\n"); 115 | return -1; 116 | } 117 | 118 | device_create(lcd_class, NULL, devid, NULL, "sunxi-lcd"); 119 | 120 | lcd_init(); 121 | 122 | return ret; 123 | } 124 | 125 | static void __exit lcd_module_exit(void) 126 | { 127 | __inf("lcd_module_exit\n"); 128 | 129 | device_destroy(lcd_class, devid); 130 | 131 | class_destroy(lcd_class); 132 | 133 | cdev_del(my_cdev); 134 | } 135 | 136 | //late_initcall(lcd_module_init); 137 | fs_initcall(lcd_module_init); 138 | module_exit(lcd_module_exit); 139 | 140 | MODULE_AUTHOR("danling_xiao"); 141 | MODULE_DESCRIPTION("lcd driver"); 142 | MODULE_LICENSE("GPL"); 143 | MODULE_ALIAS("platform:lcd"); 144 | -------------------------------------------------------------------------------- /patch/linux-sunxi/include/linux/spi/spidev.h: -------------------------------------------------------------------------------- 1 | /* 2 | * include/linux/spi/spidev.h 3 | * 4 | * Copyright (C) 2006 SWAPP 5 | * Andrea Paterniani 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 | */ 21 | 22 | #ifndef SPIDEV_H 23 | #define SPIDEV_H 24 | 25 | #include 26 | 27 | /* User space versions of kernel symbols for SPI clocking modes, 28 | * matching 29 | */ 30 | 31 | #define SPI_CPHA 0x01 32 | #define SPI_CPOL 0x02 33 | 34 | #define SPI_MODE_0 (0|0) 35 | #define SPI_MODE_1 (0|SPI_CPHA) 36 | #define SPI_MODE_2 (SPI_CPOL|0) 37 | #define SPI_MODE_3 (SPI_CPOL|SPI_CPHA) 38 | 39 | #define SPI_CS_HIGH 0x04 40 | #define SPI_LSB_FIRST 0x08 41 | #define SPI_3WIRE 0x10 42 | #define SPI_LOOP 0x20 43 | #define SPI_NO_CS 0x40 44 | #define SPI_READY 0x80 45 | 46 | /*---------------------------------------------------------------------------*/ 47 | 48 | /* IOCTL commands */ 49 | 50 | #define SPI_IOC_MAGIC 'k' 51 | 52 | /** 53 | * struct spi_ioc_transfer - describes a single SPI transfer 54 | * @tx_buf: Holds pointer to userspace buffer with transmit data, or null. 55 | * If no data is provided, zeroes are shifted out. 56 | * @rx_buf: Holds pointer to userspace buffer for receive data, or null. 57 | * @len: Length of tx and rx buffers, in bytes. 58 | * @speed_hz: Temporary override of the device's bitrate. 59 | * @bits_per_word: Temporary override of the device's wordsize. 60 | * @delay_usecs: If nonzero, how long to delay after the last bit transfer 61 | * before optionally deselecting the device before the next transfer. 62 | * @cs_change: True to deselect device before starting the next transfer. 63 | * 64 | * This structure is mapped directly to the kernel spi_transfer structure; 65 | * the fields have the same meanings, except of course that the pointers 66 | * are in a different address space (and may be of different sizes in some 67 | * cases, such as 32-bit i386 userspace over a 64-bit x86_64 kernel). 68 | * Zero-initialize the structure, including currently unused fields, to 69 | * accommodate potential future updates. 70 | * 71 | * SPI_IOC_MESSAGE gives userspace the equivalent of kernel spi_sync(). 72 | * Pass it an array of related transfers, they'll execute together. 73 | * Each transfer may be half duplex (either direction) or full duplex. 74 | * 75 | * struct spi_ioc_transfer mesg[4]; 76 | * ... 77 | * status = ioctl(fd, SPI_IOC_MESSAGE(4), mesg); 78 | * 79 | * So for example one transfer might send a nine bit command (right aligned 80 | * in a 16-bit word), the next could read a block of 8-bit data before 81 | * terminating that command by temporarily deselecting the chip; the next 82 | * could send a different nine bit command (re-selecting the chip), and the 83 | * last transfer might write some register values. 84 | */ 85 | struct spi_ioc_transfer { 86 | __u64 tx_buf; 87 | __u64 rx_buf; 88 | 89 | __u32 len; 90 | __u32 speed_hz; 91 | 92 | __u16 delay_usecs; 93 | __u8 bits_per_word; 94 | __u8 cs_change; 95 | __u32 pad; 96 | 97 | /* If the contents of 'struct spi_ioc_transfer' ever change 98 | * incompatibly, then the ioctl number (currently 0) must change; 99 | * ioctls with constant size fields get a bit more in the way of 100 | * error checking than ones (like this) where that field varies. 101 | * 102 | * NOTE: struct layout is the same in 64bit and 32bit userspace. 103 | */ 104 | }; 105 | 106 | /* not all platforms use or _IOC_TYPECHECK() ... */ 107 | #define SPI_MSGSIZE(N) \ 108 | ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) \ 109 | ? ((N)*(sizeof (struct spi_ioc_transfer))) : 0) 110 | #define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)]) 111 | 112 | 113 | /* Read / Write of SPI mode (SPI_MODE_0..SPI_MODE_3) */ 114 | #define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, __u8) 115 | #define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, __u8) 116 | 117 | /* Read / Write SPI bit justification */ 118 | #define SPI_IOC_RD_LSB_FIRST _IOR(SPI_IOC_MAGIC, 2, __u8) 119 | #define SPI_IOC_WR_LSB_FIRST _IOW(SPI_IOC_MAGIC, 2, __u8) 120 | 121 | /* Read / Write SPI device word length (1..N) */ 122 | #define SPI_IOC_RD_BITS_PER_WORD _IOR(SPI_IOC_MAGIC, 3, __u8) 123 | #define SPI_IOC_WR_BITS_PER_WORD _IOW(SPI_IOC_MAGIC, 3, __u8) 124 | 125 | /* Read / Write SPI device default max speed hz */ 126 | #define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, __u32) 127 | #define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, __u32) 128 | 129 | 130 | 131 | #endif /* SPIDEV_H */ 132 | -------------------------------------------------------------------------------- /patch/linux-sunxi/make_kernel_patch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # make_kernel_patch.sh, save add/changed files patch dir 3 | # run command "git status" to get the changed files 4 | cd `dirname $0` 5 | TOP_DIR=`pwd`/../ 6 | TMP_PATCH_DIR=`pwd`/../kernel_patch_tmp/patch/linux-sunxi/ 7 | changes=`git status -s | grep " M " | cut -b 4-` 8 | adds=`git status -s | grep "?? " | cut -d ' ' -f2` 9 | rm -rf ${TMP_PATCH_DIR}/ 10 | mkdir -p ${TMP_PATCH_DIR}/ 11 | 12 | for i in $changes 13 | do 14 | if [ -f $i ]; then 15 | echo "copy $i" 16 | dest=${TMP_PATCH_DIR}/`dirname $i` 17 | mkdir -p $dest && 18 | cp $i $dest 19 | fi 20 | done 21 | 22 | for i in $adds 23 | do 24 | if [ -d $i ]; then 25 | echo "add dir $i" 26 | dest=${TMP_PATCH_DIR}/`dirname $i` 27 | mkdir -p $dest && 28 | cp $i $dest -ar 29 | elif [ -f $i ]; then 30 | echo "add file $i" 31 | dest=${TMP_PATCH_DIR}/`dirname $i` 32 | mkdir -p $dest && 33 | cp $i $dest 34 | fi 35 | done 36 | 37 | cd $TMP_PATCH_DIR/ 38 | find ./ -name "*.cmd" | xargs rm -rf 39 | find ./ -name "*.mod.c" | xargs rm -rf 40 | find ./ -name "*.ko" | xargs rm -rf 41 | find ./ -name "modules.builtin" | xargs rm -rf 42 | find ./ -name "modules.order" | xargs rm -rf 43 | 44 | cd $TMP_PATCH_DIR/../../ 45 | tar zcf patch.tgz ./patch 46 | tar zxf patch.tgz -C $TOP_DIR 47 | rm -rf ${TOP_DIR}/kernel_patch_tmp/ 48 | echo "generated kernel patch to $TOP_DIR/patch/linux-sunxi" 49 | -------------------------------------------------------------------------------- /patch/linux-sunxi/rootfs/rootfs.cpio.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/patch/linux-sunxi/rootfs/rootfs.cpio.xz -------------------------------------------------------------------------------- /patch/linux-sunxi/rootfs/sun7i_rootfs.cpio.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/patch/linux-sunxi/rootfs/sun7i_rootfs.cpio.xz -------------------------------------------------------------------------------- /patch/linux-sunxi/scripts/setlocalversion: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # This scripts adds local version information from the version 4 | # control systems git, mercurial (hg) and subversion (svn). 5 | # 6 | # If something goes wrong, send a mail the kernel build mailinglist 7 | # (see MAINTAINERS) and CC Nico Schottelius 8 | # . 9 | # 10 | # 11 | 12 | usage() { 13 | echo "Usage: $0 [--save-scmversion] [srctree]" >&2 14 | exit 1 15 | } 16 | 17 | scm_only=false 18 | srctree=. 19 | if test "$1" = "--save-scmversion"; then 20 | scm_only=true 21 | shift 22 | fi 23 | if test $# -gt 0; then 24 | srctree=$1 25 | shift 26 | fi 27 | if test $# -gt 0 -o ! -d "$srctree"; then 28 | usage 29 | fi 30 | 31 | scm_version() 32 | { 33 | local short 34 | short=false 35 | 36 | cd "$srctree" 37 | if test -e .scmversion; then 38 | cat .scmversion 39 | return 40 | fi 41 | if test "$1" = "--short"; then 42 | short=true 43 | fi 44 | 45 | # Check for git and a git repo. 46 | if test -d .git && head=`git rev-parse --verify --short HEAD 2>/dev/null`; then 47 | 48 | # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore 49 | # it, because this version is defined in the top level Makefile. 50 | if [ -z "`git describe --exact-match 2>/dev/null`" ]; then 51 | 52 | # If only the short version is requested, don't bother 53 | # running further git commands 54 | if $short; then 55 | echo "+" 56 | return 57 | fi 58 | # If we are past a tagged commit (like 59 | # "v2.6.30-rc5-302-g72357d5"), we pretty print it. 60 | if atag="`git describe 2>/dev/null`"; then 61 | echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' 62 | 63 | # If we don't have a tag at all we print -g{commitish}. 64 | else 65 | printf '%s%s' -g $head 66 | fi 67 | fi 68 | 69 | # Is this git on svn? 70 | if git config --get svn-remote.svn.url >/dev/null; then 71 | printf -- '-svn%s' "`git svn find-rev $head`" 72 | fi 73 | 74 | # Update index only on r/w media 75 | [ -w . ] && git update-index --refresh --unmerged > /dev/null 76 | 77 | # Check for uncommitted changes 78 | if git diff-index --name-only HEAD | grep -qv "^scripts/package"; then 79 | printf '%s' -dirty 80 | fi 81 | 82 | # All done with git 83 | return 84 | fi 85 | 86 | # Check for mercurial and a mercurial repo. 87 | if test -d .hg && hgid=`hg id 2>/dev/null`; then 88 | # Do we have an tagged version? If so, latesttagdistance == 1 89 | if [ "`hg log -r . --template '{latesttagdistance}'`" == "1" ]; then 90 | id=`hg log -r . --template '{latesttag}'` 91 | printf '%s%s' -hg "$id" 92 | else 93 | tag=`printf '%s' "$hgid" | cut -d' ' -f2` 94 | if [ -z "$tag" -o "$tag" = tip ]; then 95 | id=`printf '%s' "$hgid" | sed 's/[+ ].*//'` 96 | printf '%s%s' -hg "$id" 97 | fi 98 | fi 99 | 100 | # Are there uncommitted changes? 101 | # These are represented by + after the changeset id. 102 | case "$hgid" in 103 | *+|*+\ *) printf '%s' -dirty ;; 104 | esac 105 | 106 | # All done with mercurial 107 | return 108 | fi 109 | 110 | # Check for svn and a svn repo. 111 | if rev=`svn info 2>/dev/null | grep '^Last Changed Rev'`; then 112 | rev=`echo $rev | awk '{print $NF}'` 113 | printf -- '-svn%s' "$rev" 114 | 115 | # All done with svn 116 | return 117 | fi 118 | } 119 | 120 | collect_files() 121 | { 122 | local file res 123 | 124 | for file; do 125 | case "$file" in 126 | *\~*) 127 | continue 128 | ;; 129 | esac 130 | if test -e "$file"; then 131 | res="$res$(cat "$file")" 132 | fi 133 | done 134 | echo "$res" 135 | } 136 | 137 | if $scm_only; then 138 | if test ! -e .scmversion; then 139 | res=$(scm_version) 140 | echo "$res" >.scmversion 141 | fi 142 | exit 143 | fi 144 | 145 | if test -e include/config/auto.conf; then 146 | . include/config/auto.conf 147 | else 148 | echo "Error: kernelrelease not valid - run 'make prepare' to update it" 149 | exit 1 150 | fi 151 | 152 | # localversion* files in the build and source directory 153 | res="$(collect_files localversion*)" 154 | if test ! "$srctree" -ef .; then 155 | res="$res$(collect_files "$srctree"/localversion*)" 156 | fi 157 | 158 | # CONFIG_LOCALVERSION and LOCALVERSION (if set) 159 | res="${res}${CONFIG_LOCALVERSION}${LOCALVERSION}" 160 | 161 | # scm version string if not at a tagged commit 162 | if test "$CONFIG_LOCALVERSION_AUTO" = "y"; then 163 | # full scm version string 164 | res="$res$(scm_version)" 165 | else 166 | # append a plus sign if the repository is not in a clean 167 | # annotated or signed tagged state (as git describe only 168 | # looks at signed or annotated tags - git tag -a/-s) and 169 | # LOCALVERSION= is not specified 170 | if test "${LOCALVERSION+set}" != "set"; then 171 | scm=$(scm_version --short) 172 | res="$res${scm:++}" 173 | fi 174 | fi 175 | 176 | #echo "$res" 177 | echo "+" 178 | -------------------------------------------------------------------------------- /patch/linux-sunxi/usr/initramfs_data.cpio.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pcduino/a20-kernel/f945b656aa65fb7a199c044ba743706c33a53f3c/patch/linux-sunxi/usr/initramfs_data.cpio.xz -------------------------------------------------------------------------------- /patch/u-boot-sunxi/board/sunxi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # (C) Copyright 2012 Henrik Nordstrom 3 | # 4 | # Based on some other board Makefile 5 | # 6 | # (C) Copyright 2000-2003 7 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. 8 | # 9 | # SPDX-License-Identifier: GPL-2.0+ 10 | # 11 | obj-y += board.o 12 | obj-$(CONFIG_A10_MID_1GB) += dram_sun4i_360_1024_iow16.o 13 | obj-$(CONFIG_A10_OLINUXINO_L) += dram_a10_olinuxino_l.o 14 | obj-$(CONFIG_A10S_OLINUXINO_M) += dram_a10s_olinuxino_m.o 15 | obj-$(CONFIG_A13_OLINUXINO) += dram_a13_olinuxino.o 16 | obj-$(CONFIG_A13_OLINUXINOM) += dram_a13_oli_micro.o 17 | obj-$(CONFIG_A13_MID) += dram_a13_mid.o 18 | obj-$(CONFIG_A20_OLINUXINO_M) += dram_sun7i_384_1024_iow16.o 19 | obj-$(CONFIG_AUXTEK_T003) += dram_auxtek_t003.o 20 | # This is not a typo, uses the same mem settings as the a10s-olinuxino-m 21 | obj-$(CONFIG_AUXTEK_T004) += dram_a10s_olinuxino_m.o 22 | obj-$(CONFIG_BA10_TV_BOX) += dram_sun4i_384_1024_iow8.o 23 | obj-$(CONFIG_COBY_MID7042) += dram_sun4i_408_1024_iow16.o 24 | obj-$(CONFIG_COBY_MID8042) += dram_sun4i_360_1024_iow16.o 25 | obj-$(CONFIG_COBY_MID9742) += dram_sun4i_408_1024_iow16.o 26 | obj-$(CONFIG_MARSBOARD_A10) += dram_sun4i_360_1024_iow16.o 27 | obj-$(CONFIG_MARSBOARD_A20) += dram_sun4i_360_1024_iow16.o 28 | obj-$(CONFIG_CUBIEBOARD) += dram_cubieboard.o 29 | obj-$(CONFIG_CUBIEBOARD_512) += dram_cubieboard_512.o 30 | obj-$(CONFIG_CUBIEBOARD2) += dram_cubieboard2.o 31 | obj-$(CONFIG_CUBIETRUCK) += dram_cubietruck.o 32 | obj-$(CONFIG_DNS_M82) += dram_sun4i_360_1024_iow16.o 33 | obj-$(CONFIG_EOMA68_A10) += dram_sun4i_360_1024_iow8.o 34 | obj-$(CONFIG_EOMA68_A20) += dram_sun7i_384_1024_iow16.o 35 | obj-$(CONFIG_EU3000) += dram_eu3000.o 36 | obj-$(CONFIG_GOOSEBERRY_A721) += dram_gooseberry_a721.o 37 | obj-$(CONFIG_H6) += dram_h6.o 38 | obj-$(CONFIG_HACKBERRY) += dram_hackberry.o 39 | obj-$(CONFIG_HCORE_HC860) += dram_sun4i_384_1024_iow16.o 40 | obj-$(CONFIG_A7HD) += dram_sun4i_360_1024_iow8.o 41 | obj-$(CONFIG_INTERRA3) += dram_mk802ii_a20.o 42 | obj-$(CONFIG_INET_86VZ) += dram_a10s_olinuxino_m.o 43 | obj-$(CONFIG_INET97F_II) += dram_sun4i_408_512.o 44 | obj-$(CONFIG_INET_K70HC) += dram_inet_k70hc.o 45 | obj-$(CONFIG_ITEADA10) += dram_cubieboard.o 46 | obj-$(CONFIG_ITEADA20) += dram_cubieboard2.o 47 | obj-$(CONFIG_JESURUN_Q5) += dram_sun4i_312_1024_iow8.o 48 | obj-$(CONFIG_K1001L1C) += dram_a20_olinuxino_m.o 49 | obj-$(CONFIG_MEFAFEIS_A08) += dram_megafeis_a08.o 50 | obj-$(CONFIG_MELE_A1000) += dram_sun4i_360_512.o 51 | obj-$(CONFIG_MELE_A1000G) += dram_sun4i_360_1024_iow8.o 52 | obj-$(CONFIG_MELE_A3700) += dram_sun4i_360_1024_iow8.o 53 | obj-$(CONFIG_MINI_X) += dram_sun4i_360_512.o 54 | obj-$(CONFIG_MINI_X_1GB) += dram_sun4i_360_1024_iow16.o 55 | obj-$(CONFIG_MINI_X_A10S) += dram_mini_x_a10s.o 56 | obj-$(CONFIG_MK802) += dram_sun4i_360_512.o 57 | obj-$(CONFIG_MK802_1GB) += dram_sun4i_360_1024_iow16.o 58 | obj-$(CONFIG_MK802_A10S) += dram_mk802_a10s.o 59 | obj-$(CONFIG_MK802II) += dram_sun4i_408_1024_iow8.o 60 | obj-$(CONFIG_MK802II_A20) += dram_mk802ii_a20.o 61 | obj-$(CONFIG_MK808C_A20) += dram_sun7i_384_1024_iow16.o 62 | obj-$(CONFIG_PCDUINO) += dram_sun4i_408_1024_iow8.o 63 | obj-$(CONFIG_PCDUINO3) += dram_pcduino3.o 64 | obj-$(CONFIG_PCDUINO3_LVDS) += dram_pcduino3.o 65 | obj-$(CONFIG_PCDUINO3_NANO) += dram_pcduino3.o 66 | obj-$(CONFIG_PENGPOD700) += dram_sun4i_384_1024_iow8.o 67 | obj-$(CONFIG_PENGPOD1000) += dram_sun4i_408_1024_iow16.o 68 | obj-$(CONFIG_POV_PROTAB2) += dram_pov_protab2.o 69 | obj-$(CONFIG_POV_PROTAB2_XXL) += dram_pov_protab2_xxl.o 70 | obj-$(CONFIG_R7DONGLE) += dram_r7dongle.o 71 | obj-$(CONFIG_SANEI_N90) += dram_sanei_n90.o 72 | obj-$(CONFIG_UHOST_U1A) += dram_sun4i_360_1024_iow8.o 73 | obj-$(CONFIG_WEXLER_TAB_7200) += dram_wexler_tab_7200.o 74 | obj-$(CONFIG_WOBO_I5) += dram_wobo_i5.o 75 | obj-$(CONFIG_XZPAD700) += dram_xzpad700.o 76 | obj-$(CONFIG_ZATAB) += dram_zatab.o 77 | -------------------------------------------------------------------------------- /patch/u-boot-sunxi/board/sunxi/dram_pcduino3.c: -------------------------------------------------------------------------------- 1 | /* this file is generated, don't edit it yourself */ 2 | 3 | #include "common.h" 4 | #include 5 | 6 | static struct dram_para dram_para = { 7 | .clock = 408, 8 | .type = 3, 9 | .rank_num = 1, 10 | .density = 4096, 11 | .io_width = 16, 12 | .bus_width = 32, 13 | .cas = 9, 14 | .zq = 0x7a, 15 | .odt_en = 0, 16 | .size = 1024, 17 | .tpr0 = 0x42d899b7, 18 | .tpr1 = 0xa090, 19 | .tpr2 = 0x22a00, 20 | .tpr3 = 0, 21 | .tpr4 = 0, 22 | .tpr5 = 0, 23 | .emr1 = 0x4, 24 | .emr2 = 0x10, 25 | .emr3 = 0, 26 | }; 27 | 28 | unsigned long sunxi_dram_init(void) 29 | { 30 | return dramc_init(&dram_para); 31 | } 32 | -------------------------------------------------------------------------------- /patch/u-boot-sunxi/make_uboot_patch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # make_uboot_patch.sh, save add/changed files patch dir 3 | # run command "git status" to get the changed files 4 | cd `dirname $0` 5 | TOP_DIR=`pwd`/../ 6 | TMP_PATCH_DIR=`pwd`/../patch_tmp/patch/u-boot-sunxi/ 7 | changes=`git status -s | grep " M " | cut -b 4-` 8 | adds=`git status -s | grep "?? " | cut -d ' ' -f2` 9 | rm -rf ${TMP_PATCH_DIR}/ 10 | mkdir -p ${TMP_PATCH_DIR}/ 11 | 12 | for i in $changes 13 | do 14 | if [ -f $i ]; then 15 | echo "copy $i" 16 | dest=${TMP_PATCH_DIR}/`dirname $i` 17 | mkdir -p $dest && 18 | cp $i $dest 19 | fi 20 | done 21 | 22 | for i in $adds 23 | do 24 | if [ -d $i ]; then 25 | echo "add dir $i" 26 | dest=${TMP_PATCH_DIR}/`dirname $i` 27 | mkdir -p $dest && 28 | cp $i $dest -ar 29 | elif [ -f $i ]; then 30 | echo "add file $i" 31 | dest=${TMP_PATCH_DIR}/`dirname $i` 32 | mkdir -p $dest && 33 | cp $i $dest 34 | fi 35 | done 36 | 37 | cd $TMP_PATCH_DIR/ 38 | find ./ -name "*.cmd" | xargs rm -rf 39 | find ./ -name "*.mod.c" | xargs rm -rf 40 | find ./ -name "*.ko" | xargs rm -rf 41 | find ./ -name "modules.builtin" | xargs rm -rf 42 | find ./ -name "modules.order" | xargs rm -rf 43 | 44 | cd $TMP_PATCH_DIR/../../ 45 | tar zcf patch.tgz ./patch 46 | tar zxf patch.tgz -C $TOP_DIR 47 | rm -rf ${TOP_DIR}/kernel_patch_tmp/ 48 | echo "generated kernel patch to $TOP_DIR/patch/u-boot-sunxi" 49 | -------------------------------------------------------------------------------- /rootfs.img: -------------------------------------------------------------------------------- 1 | null 2 | -------------------------------------------------------------------------------- /rootfs/debian-ubuntu/etc/modprobe.d/8192cu.conf: -------------------------------------------------------------------------------- 1 | # Workaround for dropping connections because power save 2 | options 8192cu rtw_power_mgnt=0 rtw_enusbss=0 3 | -------------------------------------------------------------------------------- /rootfs/debian-ubuntu/etc/modules: -------------------------------------------------------------------------------- 1 | # /etc/modules: kernel modules to load at boot time. 2 | # 3 | # This file contains the names of kernel modules that should be loaded 4 | # at boot time, one per line. Lines beginning with "#" are ignored. 5 | 6 | #For SATA Support 7 | sw_ahci_platform 8 | 9 | #Display and GPU 10 | lcd 11 | hdmi 12 | ump 13 | disp 14 | mali 15 | mali_drm 16 | 8192cu 17 | 18 | -------------------------------------------------------------------------------- /scripts/copy_pack_tools.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd `dirname $0` 3 | LICHEE_DIR=/pub/release/a20-orig/a20/lichee/ 4 | DST=../allwinner-tools/livesuit/a20 5 | 6 | rm ${DST} -rf 7 | mkdir -p ${DST}/ 8 | cp ${LICHEE_DIR}/tools/pack/chips/sun7i/eFex ${DST} -ar 9 | cp ${LICHEE_DIR}/tools/pack/chips/sun7i/eGon ${DST} -ar 10 | cp ${LICHEE_DIR}/tools/pack/chips/sun7i/wboot ${DST} -ar 11 | 12 | cp ${LICHEE_DIR}/tools/pack/pctools/linux/eDragonEx ${DST} -ar 13 | cp ${LICHEE_DIR}/tools/pack/pctools/linux/fsbuild200 ${DST} -ar 14 | cp ${LICHEE_DIR}/tools/pack/pctools/linux/mod_update ${DST} -ar 15 | 16 | cp ${LICHEE_DIR}/tools/pack/chips/sun7i/configs/linux/default ${DST} -ar 17 | -------------------------------------------------------------------------------- /scripts/mk_android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { 4 | echo "$*" >&2 5 | exit 1 6 | } 7 | 8 | [ -s "./chosen_board.mk" ] || die "please run ./configure first." 9 | 10 | set -e 11 | 12 | . ./chosen_board.mk 13 | 14 | # Board-independent configuration variables 15 | REPO_TOOL_URL="https://dl-ssl.google.com/dl/googlesource/git-repo/repo" 16 | REPO_MANIFEST="git://github.com/CyanogenMod/android.git" 17 | REPO_LOCAL_MANIFEST="http://turl.linux-sunxi.org/local_manifest_jb.xml" 18 | REPO_BRANCH="jellybean" 19 | 20 | ANDROID_REPO_DIR="$PWD/android" 21 | PATH="$ANDROID_REPO_DIR:$PATH" 22 | ACTION="$1" 23 | 24 | if [ "$ACTION" != "sync" -a "$ACTION" != "clobber" -a "$ACTION" != "build" ]; then 25 | die "Invalid action specified" 26 | fi 27 | 28 | # Do we need to create the repo dir? 29 | if [ ! -d "$ANDROID_REPO_DIR" ]; then 30 | mkdir "$ANDROID_REPO_DIR" 31 | fi 32 | 33 | # Do we have the repo tool installed already? 34 | if [ ! -x "$ANDROID_REPO_DIR/repo" ]; then 35 | wget "$REPO_TOOL_URL" -O "$ANDROID_REPO_DIR/repo" || die "error downloading repo tool" 36 | chmod +x "$ANDROID_REPO_DIR/repo" 37 | fi 38 | 39 | cd "$ANDROID_REPO_DIR" 40 | 41 | # Update/download repo 42 | repo init -u "$REPO_MANIFEST" -b "$REPO_BRANCH" || die "error initializing repo" 43 | wget "$REPO_LOCAL_MANIFEST" -O "$ANDROID_REPO_DIR/.repo/local_manifest.xml" || die "error downloading local manifest" 44 | repo sync || die "error syncing repo" 45 | 46 | # And keep repo tool up to date 47 | cp "$ANDROID_REPO_DIR/.repo/repo/repo" "$ANDROID_REPO_DIR/repo" 48 | 49 | # Update the system: "make android-sync" 50 | if [ "$ACTION" = "sync" ]; then 51 | # We have already updated 52 | exit 0 53 | fi 54 | 55 | # Load android env commands 56 | . build/envsetup.sh 57 | 58 | # Clean the tree: "make android-clobber" 59 | if [ "$ACTION" = "clobber" ]; then 60 | mka clobber 61 | exit 0 62 | fi 63 | 64 | # Build Android: "make android" 65 | ./vendor/cm/get-prebuilts 66 | brunch "cm_$BOARD-userdebug" 67 | -------------------------------------------------------------------------------- /scripts/mk_ext4_rootfs.sh: -------------------------------------------------------------------------------- 1 | 2 | TARGET=$PWD"/target_tmp" 3 | 4 | cleanup() { 5 | sudo umount $TARGET || true 6 | sudo sudo rm -rf $TARGET 7 | } 8 | 9 | die() { 10 | echo "$*" >&2 11 | cleanup 12 | exit 1 13 | } 14 | 15 | set -e 16 | 17 | make_rootfs() 18 | { 19 | echo "Make rootfs" 20 | local rootfs=$(readlink -f "$1") 21 | local output=$(readlink -f "$2") 22 | local fsizeinbytes=$(gzip -lq "$rootfs" | awk -F" " '{print $2}') 23 | local fsizeMB=$(expr $fsizeinbytes / 1024 / 1024 + 200) 24 | local d= x= 25 | local rootfs_copied= 26 | 27 | echo "Make linux.ext4 (size="$fsizeMB")" 28 | mkdir -p $TARGET 29 | rm -f linux.ext4 30 | dd if=/dev/zero of=linux.ext4 bs=1M count="$fsizeMB" 31 | mkfs.ext4 linux.ext4 32 | sudo umount $TARGET || true 33 | sudo mount linux.ext4 $TARGET -o loop=/dev/loop0 34 | 35 | cd $TARGET 36 | echo "Unpacking $rootfs" 37 | sudo tar xzpf $rootfs 38 | 39 | for x in '' \ 40 | 'binary/boot/filesystem.dir' 'binary'; do 41 | 42 | d="$TARGET${x:+/$x}" 43 | 44 | if [ -d "$d/sbin" ]; then 45 | rootfs_copied=1 46 | sudo mv "$d"/* $TARGET || 47 | die "Failed to copy rootfs data" 48 | break 49 | fi 50 | done 51 | 52 | [ -n "$rootfs_copied" ] || die "Unsupported rootfs" 53 | 54 | cd - > /dev/null 55 | 56 | mv linux.ext4 $output 57 | } 58 | 59 | [ $# -eq 2 ] || die "Usage: $0 [rootfs.tar.gz] [output]" 60 | 61 | make_rootfs "$1" "$2" 62 | cleanup 63 | 64 | -------------------------------------------------------------------------------- /scripts/mk_hwpack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | die() { 4 | echo "$*" >&2 5 | exit 1 6 | } 7 | 8 | [ -s "./chosen_board.mk" ] || die "please run ./configure first." 9 | 10 | set -e 11 | 12 | . ./chosen_board.mk 13 | 14 | U_O_PATH="build/$UBOOT_CONFIG-u-boot" 15 | K_O_PATH="build/$KERNEL_CONFIG-linux" 16 | HWPACK_DIR="build/${BOARD}_hwpack" 17 | 18 | ABI=armhf 19 | 20 | cp_debian_files() { 21 | local rootfs="$1" 22 | local cedarxdir="cedarx-libs/libcedarv/linux-$ABI" 23 | local libtype="x11" # or framebuffer 24 | local x= y= 25 | 26 | echo "Debian/Ubuntu hwpack" 27 | cp -r "rootfs/debian-ubuntu"/* "$rootfs/" 28 | 29 | ## libs 30 | install -m 0755 $(find "$cedarxdir" -name '*.so') "$rootfs/lib/" 31 | 32 | ## kernel modules 33 | cp -r "$K_O_PATH/output/lib/modules" "$rootfs/lib/" 34 | rm -f "$rootfs/lib/modules"/*/source 35 | rm -f "$rootfs/lib/modules"/*/build 36 | find $rootfs/lib/modules/ -name "*.ko" | xargs arm-linux-gnueabihf-strip --strip-unneeded 37 | 38 | ## bins 39 | #cp ../../a10-tools/a1x-initramfs.sh ${OUTPUT_DIR}/${BOARD}_hwpack/rootfs/usr/bin 40 | #chmod 755 ${OUTPUT_DIR}/${BOARD}_hwpack/rootfs/usr/bin/a1x-initramfs.sh 41 | } 42 | 43 | cp_android_files() { 44 | local rootfs="$1" f= 45 | 46 | echo "Android hwpack" 47 | 48 | mkdir -p "${rootfs}/boot" 49 | ## kernel 50 | cp -r "$K_O_PATH"/arch/arm/boot/uImage "${rootfs}/boot/" 51 | cp -r "build/$BOARD.bin" "${rootfs}/boot/script.bin" 52 | 53 | ## kernel modules 54 | mkdir -p "$rootfs/system/lib/modules" 55 | find "$K_O_PATH/output/lib/modules" -name "*.ko" -print0 |xargs -0 cp -t "$rootfs/system/lib/modules/" 56 | 57 | ## boot scripts (optional) 58 | for f in boot.scr uEnv.txt; do 59 | if [ -s "build/$f" ]; then 60 | cp "build/$f" "$rootfs/boot/" 61 | fi 62 | done 63 | } 64 | 65 | create_hwpack() { 66 | local hwpack="$1" 67 | local rootfs="$HWPACK_DIR/rootfs" 68 | local kerneldir="$HWPACK_DIR/kernel" 69 | local bootloader="$HWPACK_DIR/bootloader" 70 | local f= 71 | 72 | rm -rf "$HWPACK_DIR" 73 | 74 | mkdir -p "$rootfs/usr/bin" "$rootfs/lib" 75 | 76 | if [ -z "$ANDROID" ]; then 77 | cp_debian_files "$rootfs" 78 | else 79 | cp_android_files "$rootfs" 80 | fi 81 | 82 | ## kernel 83 | mkdir -p "$kerneldir" 84 | cp -r "$K_O_PATH"/arch/arm/boot/uImage "$kerneldir/" 85 | cp -r "build/$BOARD.bin" "$kerneldir/script.bin" 86 | 87 | ## boot scripts (optional) 88 | for f in boot.scr uEnv.txt; do 89 | if [ -s "build/$f" ]; then 90 | cp "build/$f" "$kerneldir/" 91 | fi 92 | done 93 | 94 | ## bootloader 95 | mkdir -p "$bootloader" 96 | cp -r "$U_O_PATH/spl/sunxi-spl.bin" "$bootloader/" 97 | cp -r "$U_O_PATH/u-boot.bin" "$bootloader/" 98 | 99 | ## compress hwpack 100 | cd "$HWPACK_DIR" 101 | case "$hwpack" in 102 | *.7z) 103 | 7z u -up1q0r2x1y2z1w2 -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on "$hwpack" . 104 | ;; 105 | *.tar.bz2) 106 | find . ! -type d | cut -c3- | sort -V | tar -jcf "$hwpack" -T - 107 | ;; 108 | *.tar.xz) 109 | find . ! -type d | cut -c3- | sort -V | tar -Jcf "$hwpack" -T - 110 | ;; 111 | *) 112 | die "Not supported hwpack format" 113 | ;; 114 | esac 115 | cd - > /dev/null 116 | echo "Done." 117 | } 118 | 119 | [ $# -eq 1 ] || die "Usage: $0 " 120 | 121 | create_hwpack "$1" 122 | -------------------------------------------------------------------------------- /scripts/mk_livesuit_img.sh: -------------------------------------------------------------------------------- 1 | die() { 2 | echo "$*" >&2 3 | exit 1 4 | } 5 | 6 | [ -s "./chosen_board.mk" ] || die "please run ./configure first." 7 | 8 | set -e 9 | 10 | . ./chosen_board.mk 11 | 12 | DRAGON=${PWD}/allwinner-tools/dragon/dragon 13 | FSBUILD=${PWD}/allwinner-tools/fsbuild/fsbuild 14 | BINS=${PWD}/allwinner-tools/bins 15 | LIVESUIT_DIR=${PWD}/allwinner-tools/livesuit 16 | SOURCE_DIR=${LIVESUIT_DIR}/${SOC} 17 | BUILD_DIR=${PWD}/build/${BOARD}_livesuit 18 | BUILD_DIR_LOCAL=build/${BOARD}_livesuit 19 | SUNXI_TOOLS=${PWD}/sunxi-tools 20 | ROOTFS= 21 | RECOVERY= 22 | BOOT= 23 | SYSTEM= 24 | ANDROID=false 25 | DATE=`date +"%4Y%2m%2d"` 26 | 27 | show_usage_and_die() 28 | { 29 | echo "Usage (linux): $0 -R [rootfs.tar.gz]" 30 | echo "Usage (android): $0 -a -b [boot.img] -s [system.img] -r [recovery.img]" 31 | exit 1 32 | } 33 | 34 | modify_image_cfg() 35 | { 36 | echo "Modifying image.cfg: $1" 37 | cp -rf $1 ${BUILD_DIR}/image.cfg 38 | sed -i -e "s|^INPUT_DIR..*$|INPUT_DIR=${BUILD_DIR}|g" \ 39 | -e "s|^EFEX_DIR..*$|EFEX_DIR=${SOURCE_DIR}/eFex|g" \ 40 | -e "s|^imagename..*$|imagename=${BUILD_DIR}/../../output/${BOARD}_${SOC}_kernel_livesuit_${DATE}.img|g" \ 41 | ${BUILD_DIR}/image.cfg 42 | } 43 | 44 | 45 | 46 | do_addchecksum() 47 | { 48 | echo "Add checksum" 49 | # checksum for all fex (for android) 50 | ${BINS}/FileAddSum ${BUILD_DIR}/bootloader.fex ${BUILD_DIR}/vbootloader.fex 51 | ${BINS}/FileAddSum ${BUILD_DIR}/env.fex ${BUILD_DIR}/venv.fex 52 | ${BINS}/FileAddSum ${BUILD_DIR}/boot.fex ${BUILD_DIR}/vboot.fex 53 | ${BINS}/FileAddSum ${BUILD_DIR}/system.fex ${BUILD_DIR}/vsystem.fex 54 | ${BINS}/FileAddSum ${BUILD_DIR}/recovery.fex ${BUILD_DIR}/vrecovery.fex 55 | } 56 | 57 | make_bootfs() 58 | { 59 | echo "Make bootfs: $1" 60 | cp -rf ${SOURCE_DIR}/eFex/split_xxxx.fex ${BUILD_DIR} 61 | cp -rf ${SOURCE_DIR}/eFex/card/mbr.fex ${BUILD_DIR} 62 | cp -rf ${SOURCE_DIR}/wboot/bootfs ${BUILD_DIR} 63 | cp -rf ${SOURCE_DIR}/wboot/bootfs.ini ${BUILD_DIR} 64 | cp -rf ${SOURCE_DIR}/wboot/diskfs.fex ${BUILD_DIR} 65 | 66 | sed -i -e "s|^fsname=..*$|fsname=${BUILD_DIR}/bootloader.fex|g" \ 67 | -e "s|^root0=..*$|root0=${BUILD_DIR}/bootfs|g" ${BUILD_DIR}/bootfs.ini 68 | 69 | # get env.fex 70 | ${BINS}/u_boot_env_gen $1 ${BUILD_DIR}/env.fex 71 | 72 | # u-boot 73 | ${SUNXI_TOOLS}/fex2bin ${BUILD_DIR}/sys_config1.fex > ${BUILD_DIR}/bootfs/script0.bin 74 | ${SUNXI_TOOLS}/fex2bin ${BUILD_DIR}/sys_config1.fex > ${BUILD_DIR}/bootfs/script.bin 75 | 76 | # other 77 | mkdir -pv ${BUILD_DIR}/bootfs/vendor/system/media 78 | echo "empty" > ${BUILD_DIR}/bootfs/vendor/system/media/vendor 79 | 80 | if [ $ANDROID = false ]; then 81 | echo "Copying linux kernel and modules" 82 | cp ./build/${KERNEL_CONFIG}-linux/arch/arm/boot/uImage ${BUILD_DIR}/bootfs/ 83 | #mkdir -pv ${BUILD_DIR}/bootfs/lib/modules 84 | #cp -a ./build/${KERNEL_CONFIG}-linux/output/lib/modules ${BUILD_DIR}/bootfs/lib 85 | rm -f ${BUILD_DIR}/bootfs/lib/modules/*/source 86 | rm -f ${BUILD_DIR}/bootfs/lib/modules/*/build 87 | #nandc is reserved now 88 | echo "null" > ${BUILD_DIR}/boot.fex 89 | fi 90 | 91 | # build 92 | ${BINS}/update_mbr ${BUILD_DIR}/sys_config.bin ${BUILD_DIR}/mbr.fex 4 16777216 93 | ${FSBUILD} ${BUILD_DIR}/bootfs.ini ${BUILD_DIR}/split_xxxx.fex 94 | } 95 | 96 | make_boot0_boot1() 97 | { 98 | echo "Make boot0 boot1" 99 | cp -rf ${SOURCE_DIR}/eGon/storage_media/nand/boot0.bin ${BUILD_DIR} 100 | cp -rf ${SOURCE_DIR}/eGon/storage_media/nand/boot1.bin ${BUILD_DIR} 101 | cp -rf ${SOURCE_DIR}/eGon/storage_media/sdcard/boot0.bin ${BUILD_DIR}/card_boot0.fex 102 | cp -rf ${SOURCE_DIR}/eGon/storage_media/sdcard/boot1.bin ${BUILD_DIR}/card_boot1.fex 103 | 104 | ${BINS}/update_23 ${BUILD_DIR_LOCAL}/sys_config1.bin ${BUILD_DIR_LOCAL}/boot0.bin ${BUILD_DIR_LOCAL}/boot1.bin 105 | ${BINS}/update_23 ${BUILD_DIR_LOCAL}/sys_config1.bin ${BUILD_DIR_LOCAL}/card_boot0.fex ${BUILD_DIR_LOCAL}/card_boot1.fex SDMMC_CARD 106 | } 107 | 108 | make_sys_configs() 109 | { 110 | echo "Make sys configs: $1" 111 | cp $1 ${BUILD_DIR}/sys_config.fex 112 | ${BINS}/script ${BUILD_DIR}/sys_config.fex 113 | 114 | cp sunxi-boards/sys_config/${SOC}/${BOARD}.fex ${BUILD_DIR}/sys_config1.fex 115 | ${SUNXI_TOOLS}/fex2bin ${BUILD_DIR}/sys_config1.fex > ${BUILD_DIR}/sys_config1.bin 116 | 117 | } 118 | 119 | cp_android_files() 120 | { 121 | ln -sv $RECOVERY ${BUILD_DIR}/recovery.fex 122 | ln -sv $BOOT ${BUILD_DIR}/boot.fex 123 | ln -sv $SYSTEM ${BUILD_DIR}/system.fex 124 | 125 | } 126 | 127 | do_pack() 128 | { 129 | echo "!!!Packing!!!\n" 130 | 131 | # if [ $PACK_CHIP = sun4i ]; then 132 | # if [ $PACK_DEBUG = card0 ]; then 133 | # cp $TOOLS_DIR/awk_debug_card0 out/awk_debug_card0 134 | # TX=`awk '$0~"a10"{print $2}' pctools/linux/card_debug_pin` 135 | # RX=`awk '$0~"a10"{print $3}' pctools/linux/card_debug_pin` 136 | # sed -i s'/uart_debug_tx =/uart_debug_tx = '$TX'/g' out/awk_debug_card0 137 | # sed -i s'/uart_debug_rx =/uart_debug_rx = '$RX'/g' out/awk_debug_card0 138 | # sed -i s'/uart_tx =/uart_tx = '$TX'/g' out/awk_debug_card0 139 | # sed -i s'/uart_rx =/uart_rx = '$RX'/g' out/awk_debug_card0 140 | # awk -f out/awk_debug_card0 out/sys_config1.fex > out/a.fex 141 | # rm out/sys_config1.fex 142 | # mv out/a.fex out/sys_config1.fex 143 | # echo "uart -> card0 !!!" 144 | # fi 145 | # fi 146 | mkdir -p ${BUILD_DIR} 147 | if [ $ANDROID = true ]; then 148 | make_sys_configs ${LIVESUIT_DIR}/default/sys_config_android.fex 149 | make_boot0_boot1 150 | make_bootfs ${LIVESUIT_DIR}/default/env_android.cfg 151 | modify_image_cfg ${LIVESUIT_DIR}/default/image_android.cfg 152 | cp_android_files 153 | do_addchecksum 154 | else 155 | make_sys_configs ${LIVESUIT_DIR}/default/sys_config_linux.fex 156 | make_boot0_boot1 157 | make_bootfs ${LIVESUIT_DIR}/default/env_linux.cfg 158 | rm -f ${BUILD_DIR}/rootfs.fex 159 | ln -sv "$ROOTFS" ${BUILD_DIR}/rootfs.fex 160 | modify_image_cfg ${LIVESUIT_DIR}/default/image_linux.cfg 161 | fi 162 | 163 | echo "Generating image" 164 | ${DRAGON} ${BUILD_DIR}/image.cfg 165 | rm -rf ${BUILD_DIR} 166 | echo "Done" 167 | } 168 | 169 | 170 | pack_error() 171 | { 172 | echo -e "\033[47;31mERROR: $*\033[0m" 173 | } 174 | 175 | cmd_done() 176 | { 177 | printf "[OK]\n" 178 | } 179 | 180 | cmd_fail() 181 | { 182 | printf "\033[0;31;1m[Failed]\033[0m\n" 183 | printf "\nrefer to out/pack.log for detail information.\n\n" 184 | pack_error "Packing Failed." 185 | exit 1 186 | } 187 | 188 | pack_cmd() 189 | { 190 | printf "$* " 191 | local cmdlog="./cmd.log" 192 | $@ > $cmdlog 193 | 194 | local ret=1 195 | case "$1" in 196 | cp) 197 | if [ $? = 0 ] ; then 198 | ret=0 199 | fi 200 | ;; 201 | 202 | script) 203 | if grep -q "parser 1 file ok" $cmdlog ; then 204 | ret=0 205 | fi 206 | ;; 207 | 208 | update_mbr) 209 | if grep -q "update mbr file ok" $cmdlog ; then 210 | ret=0 211 | fi 212 | ;; 213 | 214 | update_boot0) 215 | if grep -q "update boot0 ok" $cmdlog ; then 216 | ret=0 217 | fi 218 | ;; 219 | 220 | fsbuild) 221 | if [ $2 = "bootfs.ini" -a -f ./bootfs.fex ] ; then 222 | ret=0 223 | fi 224 | ;; 225 | 226 | FileAddSum) 227 | if [ -f ./$2 ] ; then 228 | ret=0 229 | fi 230 | ;; 231 | 232 | dragon) 233 | if grep -q "Dragon execute image.cfg SUCCESS" $cmdlog ; then 234 | [ -f ${IMG_NAME} ] && ret=0 235 | fi 236 | ;; 237 | 238 | *) 239 | printf " [Uncheck]\n" 240 | cat $cmdlog >> pack.log 241 | echo "----------" >> pack.log 242 | return 0 243 | ;; 244 | esac 245 | 246 | cat $cmdlog >> pack.log 247 | echo "----------" >> pack.log 248 | 249 | if [ $ret -ne 0 ] ; then 250 | cmd_fail 251 | else 252 | cmd_done 253 | fi 254 | } 255 | 256 | do_pack_a20() 257 | { 258 | echo "Packing for linux" 259 | export PATH=${LIVESUIT_DIR}/a20/mod_update:${LIVESUIT_DIR}/a20/eDragonEx:${LIVESUIT_DIR}/a20/fsbuild200:$PATH 260 | mkdir -p ${BUILD_DIR} 261 | cp -f ${LIVESUIT_DIR}/a20/default/* ${BUILD_DIR} 262 | cp sunxi-boards/sys_config/${SOC}/${BOARD}.fex ${BUILD_DIR}/sys_config.fex 263 | cp -r ${SOURCE_DIR}/eFex ${BUILD_DIR} 264 | cp -r ${SOURCE_DIR}/eGon ${BUILD_DIR} 265 | cp -r ${SOURCE_DIR}/wboot ${BUILD_DIR} 266 | cd ${BUILD_DIR} 267 | 268 | [ -f sys_partition.fex ] && script_parse -f sys_partition.fex 269 | [ -f sys_config.fex ] && script_parse -f sys_config.fex 270 | 271 | cp -rf ${SOURCE_DIR}/eGon/boot0_nand.bin ${BUILD_DIR}/boot0_nand.bin 272 | cp -rf ${SOURCE_DIR}/eGon/boot1_nand.bin ${BUILD_DIR}/boot1_nand.fex 273 | cp -rf ${SOURCE_DIR}/eGon/boot0_sdcard.bin ${BUILD_DIR}/boot0_sdcard.fex 274 | cp -rf ${SOURCE_DIR}/eGon/boot1_sdcard.bin ${BUILD_DIR}/boot1_sdcard.fex 275 | 276 | cp -rf ${SOURCE_DIR}/eFex/split_xxxx.fex ${BUILD_DIR} 277 | cp -rf ${SOURCE_DIR}/wboot/bootfs ${BUILD_DIR} 278 | cp -rf ${SOURCE_DIR}/wboot/bootfs.ini ${BUILD_DIR} 279 | 280 | sed -i -e "s|^fsname=..*$|fsname=${BUILD_DIR}/bootloader.fex|g" \ 281 | -e "s|^root0=..*$|root0=${BUILD_DIR}/bootfs|g" ${BUILD_DIR}/bootfs.ini 282 | 283 | modify_image_cfg ${LIVESUIT_DIR}/a20/default/image.cfg 284 | 285 | 286 | busybox unix2dos sys_config.fex 287 | busybox unix2dos sys_partition.fex 288 | pack_cmd script sys_config.fex 289 | pack_cmd script sys_partition.fex 290 | 291 | cp sys_config.bin bootfs/script.bin 292 | cp ../${KERNEL_CONFIG}-linux/arch/arm/boot/uImage ${BUILD_DIR}/bootfs/ 293 | # update bootlogo.bmp 294 | if [ -f ${BUILD_DIR}/bootlogo.bmp ]; then 295 | cp ${BUILD_DIR}/bootlogo.bmp bootfs/os_show/ -f 296 | fi 297 | 298 | if [ "$BOARD" = "pcduino3_lvds" ] || [ "$BOARD" = "pcduino3b_lvds" ]; then 299 | cp bootfs/boot_lvds.axf bootfs/boot.axf -f 300 | cp bootfs/drv_de_lvds.drv bootfs/drv_de.drv -f 301 | fi 302 | pack_cmd update_mbr sys_partition.bin 4 303 | 304 | pack_cmd update_boot0 boot0_nand.bin sys_config.bin NAND 305 | pack_cmd update_boot0 boot0_sdcard.fex sys_config.bin SDMMC_CARD 306 | pack_cmd update_boot1 boot1_nand.fex sys_config.bin NAND 307 | pack_cmd update_boot1 boot1_sdcard.fex sys_config.bin SDMMC_CARD 308 | 309 | fsbuild bootfs.ini split_xxxx.fex 310 | 311 | u_boot_env_gen env.cfg env.fex 312 | 313 | #nandc is reserved now 314 | echo "null" > ${BUILD_DIR}/boot.fex 315 | rm -f ${BUILD_DIR}/rootfs.fex 316 | ln -sv "$ROOTFS" ${BUILD_DIR}/rootfs.fex 317 | 318 | pack_cmd dragon image.cfg sys_partition.fex 319 | 320 | cd ${BUILD_DIR}/../../ 321 | if [ -e output/${IMG_NAME} ]; then 322 | echo '----------image is at----------' 323 | echo -e '\033[0;31;1m' 324 | echo "`pwd`/output/${BOARD}_${SOC}_kernel_livesuit_${DATE}.img" 325 | echo -e '\033[0m' 326 | fi 327 | 328 | cd .. 329 | } 330 | 331 | while getopts R:r:b:s: opt; do 332 | case "$opt" in 333 | R) ROOTFS=$(readlink -f "$OPTARG"); ANDROID=false ;; 334 | r) RECOVERY=$(readlink -f "$OPTARG") ;; 335 | b) BOOT=$(readlink -f "$OPTARG") ;; 336 | s) SYSTEM=$(readlink -f "$OPTARG") ;; 337 | a) ANDROID=true ;; 338 | :) show_usage_and_die ;; 339 | *) show_usage_and_die ;; 340 | esac 341 | done 342 | 343 | if [ $ANDROID = true ]; then 344 | [ -e "$RECOVERY" ] || show_usage_and_die 345 | [ -e "$BOOT" ] || show_usage_and_die 346 | [ -e "$SYSTEM" ] || show_usage_and_die 347 | else 348 | [ -e "$ROOTFS" ] || show_usage_and_die 349 | fi 350 | 351 | if [ "${SOC}" = "a20" ]; then 352 | do_pack_a20 353 | else 354 | do_pack 355 | fi 356 | 357 | 358 | 359 | -------------------------------------------------------------------------------- /scripts/sunxi-media-create.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Usage ./sunxi-media-create.sh /dev/sdx hwpack rootfs 3 | 4 | hwpack_update_only=0 5 | 6 | BOOT_SIZE=64 7 | 8 | TEMP="${TMPDIR:-/tmp}/.sunxi-media-create.$$" 9 | HWPACKDIR="$TEMP/hwpack" 10 | ROOTFSDIR="$TEMP/rootfs" 11 | MNTBOOT="$TEMP/mnt_boot" 12 | MNTROOT="$TEMP/mnt_root" 13 | 14 | cleanup() { 15 | local x= 16 | # umount card 17 | for x in $MNTBOOT $MNTROOT; do 18 | x=$(readlink -f "$x") 19 | if grep -q " $x " /proc/mounts; then 20 | umount "$x" || exit 1 21 | fi 22 | done 23 | 24 | # and delete temporal files 25 | rm -rf --one-file-system "$TEMP" 26 | } 27 | 28 | die() { 29 | echo "$*" >&2 30 | cleanup 31 | exit 1 32 | } 33 | 34 | title() { 35 | echo 36 | echo "===" 37 | echo "=== $* ===" 38 | echo "===" 39 | } 40 | 41 | checkSyntax () { 42 | if [ $# -lt 3 ]; then 43 | echo "Usage: $0 [device] [hwpack] [rootfs]" 44 | echo "Write norootfs for [rootfs] if you want to only update" 45 | echo "u-boot, script.bin, the kernel and modules" 46 | exit 1 47 | fi 48 | 49 | [ -b "$1" ] || die "$1: Invalid device" 50 | [ -s "$2" ] || die "$2: Hardware pack not found" 51 | 52 | if [ "$3" = norootfs ]; then 53 | hwpack_update_only=1; 54 | elif [ ! -s "$3" ]; then 55 | die "$3: rootfs file not found" 56 | fi 57 | } 58 | 59 | umountSD () { 60 | local partlist=$(grep "^$1" /proc/mounts | cut -d' ' -f1) 61 | [ -z "$partlist" ] || umount $partlist 62 | } 63 | 64 | partitionSD () { 65 | local dev="$1" subdevice= 66 | local x= 67 | case "$dev" in 68 | */mmcblk*|*/loop*) 69 | subdevice="${1}p" 70 | ;; 71 | *) 72 | subdevice="$1" 73 | ;; 74 | esac 75 | 76 | title "Partitioning $dev" 77 | dd if=/dev/zero of="$dev" bs=1M count=1 || 78 | die "$dev: failed to zero the first MB" 79 | 80 | x=$(expr $BOOT_SIZE \* 2048) 81 | sfdisk --in-order -L -uS "$dev" <<-EOT 82 | 2048,$x,c 83 | ,,L 84 | EOT 85 | [ $? -eq 0 ] || 86 | die "$dev: failed to repartition media" 87 | 88 | sleep 1 89 | sfdisk -L -R "$dev" || 90 | die "$dev: failed to reload media" 91 | 92 | title "Format Partition 1 to VFAT" 93 | mkfs.vfat -I ${subdevice}1 || 94 | die "${subdevice}1: failed to format partition" 95 | 96 | title "Format Partition 2 to EXT4" 97 | mkfs.ext4 ${subdevice}2 || 98 | die "${subdevice}2: failed to format partition" 99 | } 100 | 101 | extract() { 102 | local f=$(readlink -f "$1") 103 | title "Extracting $3" 104 | 105 | mkdir -p "$2" 106 | cd "$2" 107 | case "$f" in 108 | *.tar.bz2|*.tbz2) 109 | tar xjpf "$f" 110 | ;; 111 | *.tar.gz|*.tgz) 112 | tar xzpf "$f" 113 | ;; 114 | *.7z|*.lzma) 115 | 7z x "$f" 116 | ;; 117 | *.tar.xz) 118 | tar xJpf "$f" 119 | ;; 120 | *) 121 | die "$f: unknown file extension" 122 | ;; 123 | esac 124 | cd - > /dev/null 125 | } 126 | 127 | copyUbootSpl () 128 | { 129 | dd if=$2 bs=1024 of=$1 seek=8 130 | } 131 | 132 | copyUboot () 133 | { 134 | dd if=$2 bs=1024 of=$1 seek=32 135 | } 136 | 137 | mountPartitions () 138 | { 139 | local dev="$1" subdevice= 140 | case "$dev" in 141 | */mmcblk*|*/loop*) 142 | subdevice="${1}p" 143 | ;; 144 | *) 145 | subdevice="$1" 146 | ;; 147 | esac 148 | 149 | mkdir -p "$MNTROOT" "$MNTBOOT" || 150 | die "Failed to create SD card mount points" 151 | 152 | mount ${subdevice}1 "$MNTBOOT" || 153 | die "Failed to mount VFAT partition (SD)" 154 | 155 | mount ${subdevice}2 "$MNTROOT" || 156 | die "Failed to mount EXT4 partition (SD)" 157 | } 158 | 159 | copyData () 160 | { 161 | local d= x= 162 | local rootfs_copied= 163 | 164 | echo "Copy VFAT partition files to SD Card" 165 | cp $HWPACKDIR/kernel/uImage $MNTBOOT || 166 | die "Failed to copy VFAT partition data to SD Card" 167 | cp $HWPACKDIR/kernel/*.bin $MNTBOOT/script.bin || 168 | die "Failed to copy VFAT partition data to SD Card" 169 | if [ -s $HWPACKDIR/kernel/*.scr ]; then 170 | cp $HWPACKDIR/kernel/*.scr $MNTBOOT/boot.scr || 171 | die "Failed to copy VFAT partition data to SD Card" 172 | fi 173 | 174 | if [ ${hwpack_update_only} -eq 0 ]; then 175 | title "Copy rootfs partition files to SD Card" 176 | for x in '' \ 177 | 'binary/boot/filesystem.dir' 'binary'; do 178 | 179 | d="$ROOTFSDIR${x:+/$x}" 180 | 181 | if [ -d "$d/sbin" ]; then 182 | rootfs_copied=1 183 | cp -a "$d"/* "$MNTROOT" || 184 | die "Failed to copy rootfs partition data to SD Card" 185 | break 186 | fi 187 | done 188 | 189 | [ -n "$rootfs_copied" ] || die "Unsupported rootfs" 190 | fi 191 | 192 | title "Copy hwpack rootfs files" 193 | # Fedora uses a softlink for lib. Adjust, if needed. 194 | if [ -L $MNTROOT/lib ]; then 195 | # Find where it points. For Fedora, we expect usr/lib. 196 | DEST=`/bin/ls -l $MNTROOT/lib | sed -e 's,.* ,,'` 197 | if [ "$DEST" = "usr/lib" ]; then 198 | d="$HWPACKDIR/rootfs" 199 | if [ -d "$d/lib" ]; then 200 | mkdir -p "$d/usr/lib/" 201 | mv "$d/lib"/* "$d/usr/lib/" 202 | rmdir "$d/lib" 203 | fi 204 | fi 205 | fi 206 | cp -a $HWPACKDIR/rootfs/* $MNTROOT/ || 207 | die "Failed to copy rootfs hwpack files to SD Card" 208 | } 209 | 210 | # "main" 211 | checkSyntax $1 $2 $3 212 | umountSD $1 213 | if [ ${hwpack_update_only} -eq 0 ]; then 214 | partitionSD $1 215 | fi 216 | 217 | extract $2 $HWPACKDIR/ "HW Pack" 218 | if [ ${hwpack_update_only} -eq 0 ]; then 219 | extract $3 $ROOTFSDIR/ "RootFS" 220 | fi 221 | 222 | title "Copy U-Boot/SPL to SD Card" 223 | copyUbootSpl $1 $HWPACKDIR/bootloader/sunxi-spl.bin 224 | copyUboot $1 $HWPACKDIR/bootloader/u-boot.bin 225 | mountPartitions $1 226 | copyData 227 | cleanup 228 | 229 | echo "Done." 230 | -------------------------------------------------------------------------------- /sunxi-boards/.gitattributes: -------------------------------------------------------------------------------- 1 | *.fex text eol=crlf 2 | --------------------------------------------------------------------------------