Lines Matching refs:cmd

712 	mtx_init(&sc->sc_its_cmd_lock, "ITS cmd lock", NULL, MTX_SPIN);
1187 cmd_format_command(struct its_cmd *cmd, uint8_t cmd_type)
1190 cmd->cmd_dword[0] &= htole64(~CMD_COMMAND_MASK);
1191 cmd->cmd_dword[0] |= htole64(cmd_type);
1195 cmd_format_devid(struct its_cmd *cmd, uint32_t devid)
1198 cmd->cmd_dword[0] &= htole64(~CMD_DEVID_MASK);
1199 cmd->cmd_dword[0] |= htole64((uint64_t)devid << CMD_DEVID_SHIFT);
1203 cmd_format_size(struct its_cmd *cmd, uint16_t size)
1206 cmd->cmd_dword[1] &= htole64(~CMD_SIZE_MASK);
1207 cmd->cmd_dword[1] |= htole64((size & CMD_SIZE_MASK));
1211 cmd_format_id(struct its_cmd *cmd, uint32_t id)
1214 cmd->cmd_dword[1] &= htole64(~CMD_ID_MASK);
1215 cmd->cmd_dword[1] |= htole64(id);
1219 cmd_format_pid(struct its_cmd *cmd, uint32_t pid)
1222 cmd->cmd_dword[1] &= htole64(~CMD_PID_MASK);
1223 cmd->cmd_dword[1] |= htole64((uint64_t)pid << CMD_PID_SHIFT);
1227 cmd_format_col(struct its_cmd *cmd, uint16_t col_id)
1230 cmd->cmd_dword[2] &= htole64(~CMD_COL_MASK);
1231 cmd->cmd_dword[2] |= htole64(col_id);
1235 cmd_format_target(struct its_cmd *cmd, uint64_t target)
1238 cmd->cmd_dword[2] &= htole64(~CMD_TARGET_MASK);
1239 cmd->cmd_dword[2] |= htole64(target & CMD_TARGET_MASK);
1243 cmd_format_itt(struct its_cmd *cmd, uint64_t itt)
1246 cmd->cmd_dword[2] &= htole64(~CMD_ITT_MASK);
1247 cmd->cmd_dword[2] |= htole64(itt & CMD_ITT_MASK);
1251 cmd_format_valid(struct its_cmd *cmd, uint8_t valid)
1254 cmd->cmd_dword[2] &= htole64(~CMD_VALID_MASK);
1255 cmd->cmd_dword[2] |= htole64((uint64_t)valid << CMD_VALID_SHIFT);
1277 its_cmd_sync(struct gicv3_its_softc *sc, struct its_cmd *cmd)
1282 cpu_dcache_wb_range((vm_offset_t)cmd, sizeof(*cmd));
1291 its_cmd_cwriter_offset(struct gicv3_its_softc *sc, struct its_cmd *cmd)
1295 off = (cmd - sc->sc_its_cmd_base) * sizeof(*cmd);
1343 struct its_cmd *cmd;
1367 cmd = &sc->sc_its_cmd_base[sc->sc_its_cmd_next_idx];
1371 return (cmd);
1375 its_cmd_prepare(struct its_cmd *cmd, struct its_cmd_desc *desc)
1389 cmd_format_command(cmd, ITS_CMD_MOVI);
1390 cmd_format_id(cmd, desc->cmd_desc_movi.id);
1391 cmd_format_col(cmd, desc->cmd_desc_movi.col->col_id);
1392 cmd_format_devid(cmd, desc->cmd_desc_movi.its_dev->devid);
1396 cmd_format_command(cmd, ITS_CMD_SYNC);
1397 cmd_format_target(cmd, target);
1400 cmd_format_command(cmd, ITS_CMD_MAPD);
1401 cmd_format_itt(cmd, vtophys(desc->cmd_desc_mapd.its_dev->itt));
1414 cmd_format_size(cmd, size);
1415 cmd_format_devid(cmd, desc->cmd_desc_mapd.its_dev->devid);
1416 cmd_format_valid(cmd, desc->cmd_desc_mapd.valid);
1420 cmd_format_command(cmd, ITS_CMD_MAPC);
1421 cmd_format_col(cmd, desc->cmd_desc_mapc.col->col_id);
1422 cmd_format_valid(cmd, desc->cmd_desc_mapc.valid);
1423 cmd_format_target(cmd, target);
1427 cmd_format_command(cmd, ITS_CMD_MAPTI);
1428 cmd_format_devid(cmd, desc->cmd_desc_mapvi.its_dev->devid);
1429 cmd_format_id(cmd, desc->cmd_desc_mapvi.id);
1430 cmd_format_pid(cmd, desc->cmd_desc_mapvi.pid);
1431 cmd_format_col(cmd, desc->cmd_desc_mapvi.col->col_id);
1435 cmd_format_command(cmd, ITS_CMD_MAPI);
1436 cmd_format_devid(cmd, desc->cmd_desc_mapi.its_dev->devid);
1437 cmd_format_id(cmd, desc->cmd_desc_mapi.pid);
1438 cmd_format_col(cmd, desc->cmd_desc_mapi.col->col_id);
1442 cmd_format_command(cmd, ITS_CMD_INV);
1443 cmd_format_devid(cmd, desc->cmd_desc_inv.its_dev->devid);
1444 cmd_format_id(cmd, desc->cmd_desc_inv.pid);
1447 cmd_format_command(cmd, ITS_CMD_INVALL);
1448 cmd_format_col(cmd, desc->cmd_desc_invall.col->col_id);
1461 struct its_cmd *cmd, *cmd_sync, *cmd_write;
1468 cmd = its_cmd_alloc_locked(dev);
1469 if (cmd == NULL) {
1475 target = its_cmd_prepare(cmd, desc);
1476 its_cmd_sync(sc, cmd);
1495 its_cmd_wait_completion(dev, cmd, cmd_write);