From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alberto Panizzo Date: Wed, 4 Jul 2018 20:47:24 +0200 Subject: [U-Boot] [PATCH v2 3/8] rockchip: rk3288: implement reading chip version from bootrom code In-Reply-To: <1530730069-7448-1-git-send-email-alberto@amarulasolutions.com> References: <1530730069-7448-1-git-send-email-alberto@amarulasolutions.com> Message-ID: <1530730069-7448-4-git-send-email-alberto@amarulasolutions.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This allows rockusb code to reply correctly to K_FW_GET_CHIP_VER command. On RK3288 chip version is at 0xffff4ff0 and on tested hardware it corresponds at the string "320A20140813V200" Signed-off-by: Alberto Panizzo --- arch/arm/mach-rockchip/rk3288/Makefile | 1 + arch/arm/mach-rockchip/rk3288/rockusb_rk3288.c | 30 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 arch/arm/mach-rockchip/rk3288/rockusb_rk3288.c diff --git a/arch/arm/mach-rockchip/rk3288/Makefile b/arch/arm/mach-rockchip/rk3288/Makefile index a0033a0..da0eb4a 100644 --- a/arch/arm/mach-rockchip/rk3288/Makefile +++ b/arch/arm/mach-rockchip/rk3288/Makefile @@ -7,3 +7,4 @@ obj-y += clk_rk3288.o obj-y += rk3288.o obj-y += syscon_rk3288.o +obj-$(CONFIG_USB_FUNCTION_ROCKUSB) += rockusb_rk3288.o diff --git a/arch/arm/mach-rockchip/rk3288/rockusb_rk3288.c b/arch/arm/mach-rockchip/rk3288/rockusb_rk3288.c new file mode 100644 index 0000000..62057c1 --- /dev/null +++ b/arch/arm/mach-rockchip/rk3288/rockusb_rk3288.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2018 Amarula Solutions + * Written by Alberto Panizzo + */ + +#include +#include +#include +#include +#include +#include + +#define ROM_PHYS 0xffff0000 + +#define ROM_CHIP_VER_ADDR_ADDR (ROM_PHYS + 0x4FF0) +#define ROM_CHIP_VER_ADDR_SIZE 16 + +int rk_get_bootrom_chip_version(unsigned int *chip_info, int size) +{ + if (!chip_info) + return -1; + if (size < ROM_CHIP_VER_ADDR_SIZE / sizeof(int)) + return -1; + + memcpy((char *)chip_info, (char *)ROM_CHIP_VER_ADDR_ADDR, + ROM_CHIP_VER_ADDR_SIZE); + + return 0; +} -- 2.7.4