Skip to content

Instantly share code, notes, and snippets.

@nmenon
Last active August 31, 2023 11:35
Show Gist options
  • Save nmenon/c7a3a8c0de0a65b06334190ca9350ead to your computer and use it in GitHub Desktop.
Save nmenon/c7a3a8c0de0a65b06334190ca9350ead to your computer and use it in GitHub Desktop.
omap_timer_probe
B::Frame_/Locals_/Caller
-000|omap_timer_probe(dev = 0x43C34064)
| dev = 0x43C34064
|
-001|device_probe(:dev = 0x43C34064)
| dev = 0x43C34064
| drv = 0x43C1E0DC
| ret = ???
| __func__ = (100, 101, 118, 105, 99, 101, 95, 112, 114, 111, 98, 101, 0)
|
583| ret = drv->probe(dev);
-002|uclass_get_device_tail(inline)
| ret = ???
| devp = 0x43C334FC
| dev = 0x43C34064
|
| }
|
| return -ENODEV;
|}
|
|int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp)
| return ret;
|
| assert(dev);
480| ret = device_probe(dev);
-002|uclass_get_device_tail(:dev = 0x77, :ret = 3748, :devp = 0x43C334FC)
| dev = 0x43C34064
| ret = 3748
| devp = 0x43C334FC
|
474|int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp)
-003|dm_timer_init()
| dev = 0x0
| node = (np = 0x0EA4, of_offset = 3748)
|
| return ret;
| }
|
180| if (dev) {
-004|get_ticks()
| count = 4882826085190027356
| ret = ???
|
| int ret;
|
| if (IS_ENABLED(CONFIG_TIMER_EARLY))
| return timer_early_get_count();
|
97| ret = dm_timer_init();
-005|timer_get_us()
|
|...
|
|unsigned long __weak get_timer_us_long(unsigned long base)
|{
| return timer_get_us() - base;
|}
|
|unsigned long __weak notrace timer_get_us(void)
|{
171| return tick_to_time(get_ticks() * 1000);
-006|mbox_recv(:chan = 0x43C3485C, :data = 0x43C34874, timeout_us = 10000000)
| chan = 0x43C3485C
| data = 0x43C34874
| timeout_us = 10000000
| ops = 0x43C1D934
|
| ulong start_time;
| int ret;
|
| debug("%s(chan=%p, data=%p, timeout_us=%ld)\n", __func__, chan, data,
| timeout_us);
|
136| start_time = timer_get_us();
-007|ti_sci_get_response(inline)
| chan = 0x43C3485C
| xfer = 0x43C34874
| info = 0x43C34758
| msg = 0x43C34874
| ret = ???
|
| ret = ti_sci_get_response(info, xfer, &info->chan_rx);
|...
| * @info: Pointer to SCI entity information
| * @xfer: Transfer to initiate and wait for response
| * @chan: Channel to receive the response
| *
| * Return: -ETIMEDOUT in case of no response, if transmit error,
| * return corresponding error, else if all goes well,
| * return 0.
| */
|static int ti_sci_get_response(struct ti_sci_info *info,
| struct ti_sci_xfer *xfer,
| struct mbox_chan *chan)
|{
| struct k3_sec_proxy_msg *msg = &xfer->tx_message;
| struct ti_sci_secure_msg_hdr *secure_hdr;
| struct ti_sci_msg_hdr *hdr;
| int ret;
|
| /* Receive the response */
177| ret = mbox_recv(chan, msg, info->desc->max_rx_timeout_ms * 1000);
-007|ti_sci_do_xfer(:info = 0x43C34758, :xfer = 0x43C34874)
| info = 0x43C34758
| xfer = 0x43C34874
| msg = 0x43C34874
| secure_buf = ()
| ret = 0
| __func__ = (116, 105, 95, 115, 99, 105, 95, 100, 111, 95, 120, 102, 101, 114, 0)
|
266| ret = ti_sci_get_response(info, xfer, &info->chan_rx);
-008|ti_sci_cmd_get_revision(inline)
| handle = 0x43C34760
| hdr = (type = 2, host = 35, seq = 245, flags = 2)
| info = 0x43C34758
| xfer = 0x43C34874
| ret = ???
|
| }
|
309| ret = ti_sci_do_xfer(info, xfer);
-008|ti_sci_probe(:dev = 0x43C33C7C)
| dev = 0x43C33C7C
| info = 0x43C34758
| __func__ = (116, 105, 95, 115, 99, 105, 95, 112, 114, 111, 98, 101, 0)
|
2828| ret = ti_sci_cmd_get_revision(&info->handle);
-009|device_probe(dev = 0x43C33C7C)
| dev = 0x43C33C7C
| drv = 0x43C1E384
| ret = ???
| __func__ = (100, 101, 118, 105, 99, 101, 95, 112, 114, 111, 98, 101, 0)
|
583| ret = drv->probe(dev);
-010|device_probe(:dev = 0x43C33D4C)
| dev = 0x43C33D4C
| drv = 0x43C1E2B8
| ret = ???
| __func__ = (100, 101, 118, 105, 99, 101, 95, 112, 114, 111, 98, 101, 0)
|
504| ret = device_probe(dev->parent);
-011|uclass_get_device_tail(inline)
| ret = ???
| devp = 0x43C335F4
| dev = 0x43C33D4C
|
| }
|
| return -ENODEV;
|}
|
|int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp)
| return ret;
|
| assert(dev);
480| ret = device_probe(dev);
-011|uclass_get_device_tail(:dev = 0x1E, ret = ?, :devp = 0x43C335F4)
| dev = 0x43C33D4C
| ret = ?
| devp = 0x43C335F4
|
474|int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp)
-012|clk_get_by_index_tail(:args = 0x43C33610, :clk = 0x43C33668, :index = 0, :list_name = 0x0, ret = ???)
| args = 0x43C33610
| clk = 0x43C33668
| index = 0
| list_name = 0x0
| ret = ???
| dev_clk = 0x0
|
|}
|
|static int clk_get_by_index_tail(int ret, ofnode node,
| goto err;
|
87| ret = uclass_get_device_by_ofnode(UCLASS_CLK, args->node, &dev_clk);
-013|clk_get_by_index_tail(inline)
|
84| if (ret)
-013|clk_get_by_index_nodev(:node = (np = 0x43C340CC, of_offset = 1136869580), :index = 0, :clk = 0x43C33668)
| index = 0
| clk = 0x43C33668
| args = (node = (np = 0x0A84, of_offset = 2692), args_count = 2, args = (146, 0, 1136866884, 1136669315, 1136783072, 4184, 4172, 4164, 1136787292, 1136669737, 1136783072, 9, 1136866884, 1136783072, 3968, 1136866884))
|
152| return clk_get_by_index_tail(ret, node, &args, "clocks",
-013|clk_get_by_index(tailcall)
-014|omap_serial_of_to_plat(:dev = 0x43C340CC)
| dev = 0x43C340CC
| plat = 0x43C3411C
| clk = (dev = 0x0, rate = 4881958522134204288, flags = 1, enable_count = 1136867028, id = 0, data = 1136667177)
| err = ???
|
| plat->reg_shift = 2;
|
119| err = clk_get_by_index(dev, 0, &clk);
-015|device_of_to_plat(:dev = 0x43C340CC)
| dev = 0x43C340CC
| ret = ???
|
| (CONFIG_IS_ENABLED(OF_PLATDATA) || dev_has_ofnode(dev))) {
429| ret = drv->of_to_plat(dev);
-016|device_probe(:dev = 0x43C340CC)
| dev = 0x43C340CC
| drv = 0x43C1E098
| ret = ???
| __func__ = (100, 101, 118, 105, 99, 101, 95, 112, 114, 111, 98, 101, 0)
|
| assert(drv);
|
498| ret = device_of_to_plat(dev);
-017|uclass_get_device_tail(inline)
| ret = ???
| devp = 0x43C336D4
| dev = 0x43C340CC
|
| }
|
| return -ENODEV;
|}
|
|int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp)
| return ret;
|
| assert(dev);
480| ret = device_probe(dev);
-017|uclass_get_device_tail(:dev = 0x69, :ret = 3968, :devp = 0x43C336D4)
| dev = 0x43C340CC
| ret = 3968
| devp = 0x43C336D4
|
474|int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp)
-018|serial_check_stdout(inline)
| devp = 0x43C336D4
| blob = 0x43C1EEE0
| node = 3968
|
56| if (!uclass_get_device_by_of_offset(UCLASS_SERIAL, node, devp))
-018|serial_find_console_or_panic(inline)
| blob = 0x43C1EEE0
| dev = 0x0
|
98| if (!serial_check_stdout(blob, &dev)) {
-018|serial_init()
|
161| serial_find_console_or_panic();
-019|preloader_console_init()
|
927| serial_init(); /* serial communications setup */
-020|board_init_f(dummy = ?)
| dummy = ?
| dev = 0x0
|
163| preloader_console_init();
-021|_main()
|
127| bl board_init_f
-022|board_init_r(dummy1 = 0x43C33700, dummy2 = 0)
| dummy1 = 0x43C33700
| dummy2 = 0
| spl_boot_list = (1136687883, 1136869580, 3968, 1136783072, 1136725073)
| spl_image = (name = 0x3, os = 240, load_addr = 153137595, entry_point = 0, fdt_addr = 0x69, boot_device = 0, offset = 100, size = 1136661647, flags = 1136869520, arg = 0x43C00273)
|
---|end of frame
B::Frame
-000|omap_timer_probe(dev = 0x43C34064)
-001|device_probe(:dev = 0x43C34064)
-002|uclass_get_device_tail(inline)
-002|uclass_get_device_tail(:dev = 0x77, :ret = 3748, :devp = 0x43C334FC)
-003|dm_timer_init()
-004|get_ticks()
-005|timer_get_us()
-006|mbox_recv(:chan = 0x43C3485C, :data = 0x43C34874, timeout_us = 10000000)
-007|ti_sci_get_response(inline)
-007|ti_sci_do_xfer(:info = 0x43C34758, :xfer = 0x43C34874)
-008|ti_sci_cmd_get_revision(inline)
-008|ti_sci_probe(:dev = 0x43C33C7C)
-009|device_probe(dev = 0x43C33C7C)
-010|device_probe(:dev = 0x43C33D4C)
-011|uclass_get_device_tail(inline)
-011|uclass_get_device_tail(:dev = 0x1E, ret = ?, :devp = 0x43C335F4)
-012|clk_get_by_index_tail(:args = 0x43C33610, :clk = 0x43C33668, :index = 0, :list_name = 0x0, ret = ???)
-013|clk_get_by_index_tail(inline)
-013|clk_get_by_index_nodev(:node = (np = 0x43C340CC, of_offset = 1136869580), :index = 0, :clk = 0x43C33668)
-013|clk_get_by_index(tailcall)
-014|omap_serial_of_to_plat(:dev = 0x43C340CC)
-015|device_of_to_plat(:dev = 0x43C340CC)
-016|device_probe(:dev = 0x43C340CC)
-017|uclass_get_device_tail(inline)
-017|uclass_get_device_tail(:dev = 0x69, :ret = 3968, :devp = 0x43C336D4)
-018|serial_check_stdout(inline)
-018|serial_find_console_or_panic(inline)
-018|serial_init()
-019|preloader_console_init()
-020|board_init_f(dummy = ?)
-021|_main()
-022|board_init_r(dummy1 = 0x43C33700, dummy2 = 0)
---|end of frame
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment