Загрузка данных


static int sysconfig_read_status(struct sysconfig_priv *priv, u64 *status)
{
	const u8 lsc_read_status[] = SYSCONFIG_LSC_READ_STATUS;
	u8 buf[8] = {0};
	int ret;

	ret = sysconfig_cmd_read(priv, lsc_read_status, sizeof(lsc_read_status),
				 buf, sizeof(buf));
	if (ret)
		return ret;

	*status = ((u64)buf[0] << 56 |(u64)buf[1] << 48 | (u64)buf[2] << 40 | (u64)buf[3] << 32 | (u64)buf[4] << 24 |(u64)buf[5] << 16 | (u64)buf[6] << 8 | buf[7]);

	return 0;
}

static int sysconfig_read_idcode(struct sysconfig_priv *priv)
{
	const u8 lsc_idcode[] = SYSCONFIG_LSC_IDCODE;
	u8 buf[4] = {0};
	int ret;

        printk("%s(%d)\n",__FUNCTION__,__LINE__);
	ret = sysconfig_cmd_read(priv, lsc_idcode, sizeof(lsc_idcode),buf, sizeof(buf));
	if (ret)
		return ret;
        printk("%s(%d) 0x%X 0x%X 0x%X 0x%X ret=%d\n",__FUNCTION__,__LINE__,buf[0],buf[1],buf[2],buf[3],ret);
        return 0;
}

sysconfig_read_idcode(74) 0x1 0xF 0x10 0x43 ret=0

ID_CODE=0x01 0x0F 0x10 0x43  - buf[0] - старшая часть
статус - 0x140105000E0044B5 - уже перевёрнут в коде правильно - старшая часть - buf[0]. 
при прошивке даёт статус 0x140105000E000000.