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.