Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 12 additions & 34 deletions subsys/shell/modules/devmem_service.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,43 +67,21 @@ static int memory_dump(const struct shell *sh, mem_addr_t phys_addr, size_t size
hex_data[data_offset] = value;
break;
case 16:
value = sys_le16_to_cpu(sys_read16(addr + data_offset));
hex_data[data_offset] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 1] = (uint8_t)value;
value = sys_read16(addr + data_offset);
sys_put_be16(value, &hex_data[data_offset]);
break;
case 32:
value = sys_le32_to_cpu(sys_read32(addr + data_offset));
hex_data[data_offset] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 1] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 2] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 3] = (uint8_t)value;
value = sys_read32(addr + data_offset);
sys_put_be32(value, &hex_data[data_offset]);
break;
#ifdef CONFIG_64BIT
case 64:
value = sys_le64_to_cpu(sys_read64(addr + data_offset));
hex_data[data_offset] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 1] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 2] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 3] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 4] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 5] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 6] = (uint8_t)value;
value >>= 8;
hex_data[data_offset + 7] = (uint8_t)value;
value = sys_read64(addr + data_offset);
sys_put_be64(value, &hex_data[data_offset]);
break;
#endif /* CONFIG_64BIT */
default:
shell_fprintf(sh, SHELL_NORMAL, "Incorrect data width\n");
shell_print(sh, "Incorrect data width");
return -EINVAL;
}
}
Expand Down Expand Up @@ -292,13 +270,13 @@ static int memory_read(const struct shell *sh, mem_addr_t addr, uint8_t width)
break;
#endif /* CONFIG_64BIT */
default:
shell_fprintf(sh, SHELL_NORMAL, "Incorrect data width\n");
shell_print(sh, "Incorrect data width");
err = -EINVAL;
break;
}

if (err == 0) {
shell_fprintf(sh, SHELL_NORMAL, "Read value 0x%llx\n", value);
shell_print(sh, "Read value 0x%llx", value);
}

return err;
Expand All @@ -324,7 +302,7 @@ static int memory_write(const struct shell *sh, mem_addr_t addr, uint8_t width,
break;
#endif /* CONFIG_64BIT */
default:
shell_fprintf(sh, SHELL_NORMAL, "Incorrect data width\n");
shell_print(sh, "Incorrect data width");
err = -EINVAL;
break;
}
Expand Down Expand Up @@ -355,7 +333,7 @@ static int cmd_devmem(const struct shell *sh, size_t argc, char **argv)
width = strtoul(argv[2], NULL, 10);
}

shell_fprintf(sh, SHELL_NORMAL, "Using data width %d\n", width);
shell_print(sh, "Using data width %d", width);

if (argc <= 3) {
return memory_read(sh, addr, width);
Expand All @@ -367,7 +345,7 @@ static int cmd_devmem(const struct shell *sh, size_t argc, char **argv)

value = (uint64_t)strtoull(argv[3], NULL, 16);

shell_fprintf(sh, SHELL_NORMAL, "Writing value 0x%llx\n", value);
shell_print(sh, "Writing value 0x%llx", value);

return memory_write(sh, addr, width, value);
}
Expand Down