From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 94A9FC433F5 for ; Sat, 16 Apr 2022 15:10:12 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4BFF283E28; Sat, 16 Apr 2022 17:10:09 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ZxRWmsPe"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2BC2F83DEF; Sat, 16 Apr 2022 17:10:06 +0200 (CEST) Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 1086383D8C for ; Sat, 16 Apr 2022 17:10:00 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jbx6244@gmail.com Received: by mail-ed1-x52f.google.com with SMTP id t25so12965764edt.9 for ; Sat, 16 Apr 2022 08:10:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=WEBJZ2HAdEfwX+YxdvKUaYJ+jDTeLMoERGw3oneMf5s=; b=ZxRWmsPeeTIYm1DTAxPFIEiy4nZ1KRznbnKo0/0yUP3XXqI6kn7nBiAuKvDMZgffR2 MsRqtmxeIr1ZaFSPtVCZEXcGkENSGWI4X/uuX3fmEh3khbttcJ+Y1EO/NbdmeavpMM7d eVHnSqEjkIInHayVbe/IVft0sVAhfygkGZRhhURIEzdV1Ky/HsEZh8/C7Zci02OmyTev gSZQeDCp5y3yeqNo3aNU75ReUZ7DtSUOfSnfI+YlXJjjb/SdABZi/+Aqnx7GX8/0a36J tTulGuZIvWJjnFZQA9PpKYXoTtP10Jk5/uwlPluP5xXvrWx4uSNu2KcPpQzbMNJJWCJM Mufw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=WEBJZ2HAdEfwX+YxdvKUaYJ+jDTeLMoERGw3oneMf5s=; b=QyE4rg4cKVBu3rhNSFvHjgXMWijJ3CARwKrYOgF+QXnXunMWMvR/OaRrNtS9b/izto Ksu9+Jyg43F+EyOO1kNyi7LJHlJOxziiqDW8tARM/0F0fdl4o+VMKPGerygpYCxDtbjP fAENN7OMfovOfZrHpCW8DXzqBE+lXj4r7CZaEQTnkeDkOfCdsbFZmfFSuVp9w+U68xYg PCaDLn+VnlPOwZ0d9iXN7en02Yr7p9pRuvaynhNh4JNVWif/2A4teINGXE1XXC3gbB0s 0LvQuvUs4iKVeCtXuRnCmEw3mah57kcu4PmpnbY6dPLt0DOxuHawvvt7qsdAoKdrMypc 98hw== X-Gm-Message-State: AOAM533KqMZpAd23deEl2KnZzqhLmEhqWwQf7jDAo2w8ajJZ44HiFeI6 t44SgpMZgqr0M8UD3EnAm1k= X-Google-Smtp-Source: ABdhPJyeeubAXS4t8EM3KdBDPMwq7QP7hI/MtJnuD6PJKUp9C0R3QH8oNv/qcPvnH7wn9kdQuRvMlw== X-Received: by 2002:aa7:d602:0:b0:41d:78e2:655d with SMTP id c2-20020aa7d602000000b0041d78e2655dmr4046627edr.388.1650121799365; Sat, 16 Apr 2022 08:09:59 -0700 (PDT) Received: from debian.home (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id l3-20020aa7cac3000000b00422c961c8c9sm2152510edt.78.2022.04.16.08.09.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Apr 2022 08:09:58 -0700 (PDT) From: Johan Jonker To: kever.yang@rock-chips.com Cc: sjg@chromium.org, philipp.tomsich@vrull.eu, lukma@denx.de, seanga2@gmail.com, u-boot@lists.denx.de Subject: [PATCH v11 00/16] Add Rikomagic MK808 board Date: Sat, 16 Apr 2022 17:09:36 +0200 Message-Id: <20220416150952.18758-1-jbx6244@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean MK808 is a RK3066-based board with 1 USB host and 1 USB OTG port, HDMI and a micro-SD card slot. It also includes on-board NAND and 1GB of SDRAM. Changed V11: remove defines update defconfig align doc examples Changed V10: add u-boot,spl-fifo-mode property combine patches core support restyle doc rockchip.rst add more px30 doc info add more rk3066 doc info Changed V9: fix TABs and spaces add led config enable led gpio change pinctrl regmap source disable STIMER move include Changed V8: update clock driver update grf header file Changed V7: add board files enable boot from SD card restyle pinctrl driver restyle sdram driver === Boot procedure flow for a Rockchip rk3066 SoC: 1.Read 2K SDRAM initialization image code to internal SRAM 2.Run image code to do SDRAM initialization 3.Transfer boot image code to SDRAM 4.Run boot image code Supported system boot from the following devices: Nand Flash SPI nor Flash eMMC device UART interface If all boot options fail then enter into BootROM mode on the USB OTG port. Unlike later SoC models the rk3066 BootROM doesn't have SDMMC support. The size of a full U-boot binary is too large for the internal SDRAM memory. Of that 64k size only 32kb sram - 2kb bootrom is available for the first stage. Similar to the already supported rk3188, the BootROM will attempt to load up the first stage image in two steps: first 1KB to offset 0x800 in the SRAM and then the remainder to offset 0xc00 in the SRAM. It always enters at offset 0x804 after a 4 ASCII character "RK30" header. With CONFIG_TPL_ROCKCHIP_EARLYRETURN_TO_BROM=y this first stage is combined with the U-boot TPL binary (u-boot-tpl.bin). For rk3066 with NAND flash and U-boot this gives the following stages: - TPL: init external SDRAM - SPL: init SDMMC and read U-boot from SD CARD. - U-boot: read Linux kernel from SD CARD. - Kernel Additionally the rk3066 requires everything the BootROM loads to be RC4-encrypted. === Boot solution with full U-boot stored on SD CARD: Compile commands(U-boot): ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make mk808_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make all === Size of SPL and TPL must be aligned to 2kb. If bricked and no BootROM mode shows up then connect pin 8 and 9 of the NAND flash with a needle while reconnecting to the USB OTG port to a PC. === Show connected devices with: lsusb Bus 001 Device 004: ID 2207:300a Fuzhou Rockchip Electronics Company RK3066 in Mask ROM mode === Program commands with ./flash.sh: #!/bin/sh printf "RK30" > tplspl.bin dd if=u-boot-tpl.bin >> tplspl.bin truncate -s %2048 tplspl.bin truncate -s %2048 u-boot-spl.bin ../tools/boot_merger --verbose config-flash.ini ../tools/upgrade_tool ul ./RK30xxLoader_uboot.bin === config-flash.ini: [CHIP_NAME] NAME=RK30 [VERSION] MAJOR=2 MINOR=21 [CODE471_OPTION] NUM=1 Path1=30_LPDDR2_300MHz_DD.bin [CODE472_OPTION] NUM=1 Path1=rk30usbplug.bin [LOADER_OPTION] NUM=2 LOADER1=FlashData LOADER2=FlashBoot FlashData=tplspl.bin FlashBoot=u-boot-spl.bin [OUTPUT] PATH=RK30xxLoader_uboot.bin === Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name 1 0x00000040 0x00001f7f "loader1" 2 0x00004000 0x00005fff "loader2" 3 0x00006000 0x00007fff "trust" 4 0x00008000 0x0003ffff "boot" 5 0x00040000 0x00ed7fde "rootfs" Make sure boot and esp flag are set for boot partition. Loader1 partition is not used by RK3066. === Boot partition: extlinux -- extlinux.conf zImage rk3066a-mk808.dtb === extlinux.conf: label kernel kernel /zImage fdt /rk3066a-mk808.dtb append root=LABEL=linuxroot init=/sbin/init rootfstype=ext4 rootwait === Program commands (SD CARD with GPT partition): sudo dd if=u-boot-dtb.img of=/dev/sda seek=16384 === TODO: Better program flow/tools USB NAND etc etc === Johan Jonker (12): rockchip: rk3066-power: sync power domain dt-binding header from Linux arm: dts: rockchip: fix rk3xxx-u-boot.dtsi arm: dts: rockchip: fix include rk3xxx-u-boot.dtsi arm: dts: rockchip: add rk3066a.dtsi arm: dts: rockchip: add rk3066a-mk808.dts rockchip: tools: add rk3066 support to rkcommon.c rockchip: rk3066: add core support rockchip: rk3066: add Rikomagic MK808 board rockchip: rk3066: add mk808_defconfig doc: rockchip: restyle rockchip.rst doc: rockchip: add px30/rk3326 boards and examples doc: rockchip: add rk3066 Rikomagic MK808 Paweł Jarosz (4): rockchip: rk3066: add grf header file rockchip: rk3066: add clock driver for rk3066 soc rockchip: rk3066: add rk3066 pinctrl driver rockchip: rk3066: add sdram driver arch/arm/dts/Makefile | 3 + arch/arm/dts/rk3066a-mk808-u-boot.dtsi | 49 + arch/arm/dts/rk3066a-mk808.dts | 216 +++++ arch/arm/dts/rk3066a-u-boot.dtsi | 4 + arch/arm/dts/rk3066a.dtsi | 879 +++++++++++++++++ arch/arm/dts/rk3188-u-boot.dtsi | 1 + arch/arm/dts/rk3188.dtsi | 1 - arch/arm/dts/rk3xxx-u-boot.dtsi | 8 +- arch/arm/include/asm/arch-rk3066/boot0.h | 8 + arch/arm/include/asm/arch-rk3066/gpio.h | 8 + arch/arm/include/asm/arch-rk3066/timer.h | 6 + .../include/asm/arch-rockchip/cru_rk3066.h | 157 +++ .../include/asm/arch-rockchip/grf_rk3066.h | 210 +++++ arch/arm/mach-rockchip/Kconfig | 23 + arch/arm/mach-rockchip/Makefile | 1 + arch/arm/mach-rockchip/rk3066/Kconfig | 39 + arch/arm/mach-rockchip/rk3066/Makefile | 5 + arch/arm/mach-rockchip/rk3066/clk_rk3066.c | 33 + arch/arm/mach-rockchip/rk3066/rk3066.c | 49 + arch/arm/mach-rockchip/rk3066/syscon_rk3066.c | 55 ++ board/rikomagic/mk808/Kconfig | 15 + board/rikomagic/mk808/MAINTAINERS | 6 + board/rikomagic/mk808/Makefile | 3 + board/rikomagic/mk808/mk808.c | 3 + configs/mk808_defconfig | 102 ++ doc/board/rockchip/rockchip.rst | 262 ++++- drivers/clk/rockchip/Makefile | 1 + drivers/clk/rockchip/clk_rk3066.c | 717 ++++++++++++++ drivers/pinctrl/rockchip/Makefile | 1 + drivers/pinctrl/rockchip/pinctrl-rk3066.c | 112 +++ drivers/ram/rockchip/Makefile | 1 + drivers/ram/rockchip/sdram_rk3066.c | 892 ++++++++++++++++++ include/configs/mk808.h | 9 + include/configs/rk3066_common.h | 47 + include/dt-bindings/power/rk3066-power.h | 22 + tools/rkcommon.c | 1 + 36 files changed, 3894 insertions(+), 55 deletions(-) create mode 100644 arch/arm/dts/rk3066a-mk808-u-boot.dtsi create mode 100644 arch/arm/dts/rk3066a-mk808.dts create mode 100644 arch/arm/dts/rk3066a-u-boot.dtsi create mode 100644 arch/arm/dts/rk3066a.dtsi create mode 100644 arch/arm/include/asm/arch-rk3066/boot0.h create mode 100644 arch/arm/include/asm/arch-rk3066/gpio.h create mode 100644 arch/arm/include/asm/arch-rk3066/timer.h create mode 100644 arch/arm/include/asm/arch-rockchip/cru_rk3066.h create mode 100644 arch/arm/include/asm/arch-rockchip/grf_rk3066.h create mode 100644 arch/arm/mach-rockchip/rk3066/Kconfig create mode 100644 arch/arm/mach-rockchip/rk3066/Makefile create mode 100644 arch/arm/mach-rockchip/rk3066/clk_rk3066.c create mode 100644 arch/arm/mach-rockchip/rk3066/rk3066.c create mode 100644 arch/arm/mach-rockchip/rk3066/syscon_rk3066.c create mode 100644 board/rikomagic/mk808/Kconfig create mode 100644 board/rikomagic/mk808/MAINTAINERS create mode 100644 board/rikomagic/mk808/Makefile create mode 100644 board/rikomagic/mk808/mk808.c create mode 100644 configs/mk808_defconfig create mode 100644 drivers/clk/rockchip/clk_rk3066.c create mode 100644 drivers/pinctrl/rockchip/pinctrl-rk3066.c create mode 100644 drivers/ram/rockchip/sdram_rk3066.c create mode 100644 include/configs/mk808.h create mode 100644 include/configs/rk3066_common.h create mode 100644 include/dt-bindings/power/rk3066-power.h -- 2.20.1