AI-64 - Booting from USB/SSD?

Hi Guys,

So I am trying to boot from a USB attached SSD, I may well be going about this the wrong way!

=> usb start
starting USB...
Bus usb@6400000: cdns-usb3-host usb@6400000: Unable to get USB2 phy (ret -61)
cdns-usb3-host usb@6400000: Unable to get USB3 phy (ret -61)
cdns-usb3-host usb@6400000: DRD version v1 (ID: 0004024e, rev: 00000200)
Register 2000840 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb@6400000 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

=> usb reset
resetting USB...
Bus usb@6400000: cdns-usb3-host usb@6400000: Unable to get USB2 phy (ret -61)
cdns-usb3-host usb@6400000: Unable to get USB3 phy (ret -61)
cdns-usb3-host usb@6400000: DRD version v1 (ID: 0004024e, rev: 00000200)
Register 2000840 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb@6400000 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

=> usb tree
USB device tree:
  1  Hub (5 Gb/s, 0mA)
  |  U-Boot XHCI Host Controller 
  |
  |+-2  Hub (480 Mb/s, 0mA)
    |    CC050841A4CD
    |
    |+-3  Mass Storage (480 Mb/s, 500mA)
         Ugreen 20231 00000012400A
       
=> usbboot usb3 0:1

Loading from usb device 0, partition 1: Name: usbda1  Type: U-Boot
BUG at drivers/usb/host/xhci-mem.c:39/xhci_flush_cache()!
BUG!
resetting ...

So a couple of things, it needs a usb start and a usb reset in order to see the disk.

And then the XHCI issue.

Am I doing this correctly, has anyone else managed to boot from a USB disk of any kind?

Cheers

Andy

1 Like

We could try adding a USB target here…

#if CONFIG_IS_ENABLED(CMD_USB)
# define BOOT_TARGET_USB(func) func(USB, usb, 0)
#else
# define BOOT_TARGET_USB(func)
#endif
BOOT_TARGET_USB(func) \

Let’s try it…

Commited a testing commit: [TESTING] allow usb boot on j721e_evm.h (3eed280b) · Commits · BeagleBoard.org / u-boot · GitLab

Edit 2: package is out:

sudo apt update ; sudo apt install bb-u-boot-beagleboneai64-beta
sudo /opt/u-boot/bb-u-boot-beagleboneai64-beta/install-emmc.sh
sudo /opt/u-boot/bb-u-boot-beagleboneai64-beta/install-microsd.sh

as long as extlinux.conf is on usb… it should try to load it…

Regards,

1 Like

Hi @RobertCNelson ,

Nice one I will try in a minute. I currently have the kernel loading from emmc and then the root ext4 from the ssd, that’s been working nicely:

TIMEOUT 30
DEFAULT Linux SSD

MENU TITLE AI-64 boot options

label Linux SSD
    kernel /Image
    append console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=UUID=393e11f3-06b6-485c-9ecf-04b2b1b61ee0 ro rootfstype=ext4 rootwait net.ifnames=0
    fdtdir /
    initrd /initrd.img

label Linux eMMC
    kernel /Image
    append console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait net.ifnames=0
    fdtdir /
    initrd /initrd.img

I will try this fix on the sdcard…

OK, I have installed all this but do not see any difference, still getting the XHCI issue when using usbboot.

Or should I be doing something different?

Not sure at all if this is related but just had one of these:

AI64 login: [   24.004430] list_add corruption. next->prev should be prev (ffff000812625400), but was ffff00c112625408. (next=fffffe0020d9ca48).
[   24.016079] ------------[ cut here ]------------
[   24.020691] Kernel BUG at __list_add_valid+0x54/0x90 [verbose debug info unavailable]
[   24.028502] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
[   24.033970] Modules linked in: rpmsg_char virtio_rpmsg_bus cdns_csi2rx xt_conntrack nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack_netlink nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xfrm_user xfrm_algo nft_counter sg xt_addrtype nft_compat nf_tables nfnetlink br_netfilter bridge stp llc ti_k3_r5_remoteproc aufs ti_am335x_adc bluetooth irqspruns_intc als_iscis nl4_cpv37 exe_pnc rvrs(vkmvO) vxd_dec sa2ul extcon_usbc_tusb322 authenc videobuf2_dma_sg ov5640 ti_k3_dsp_remoteproc v4l2_mem2mem j721e_csi2rx videobuf2_dma_contig pci_endpoint_test v4l2_fwnode rti_wdt uio_pdrv_genirq uio gb_uart(C) gb_spi(C) gb_raw(C) gb_netlink gb_loopback(C) gb_log(C) gb_i2c(C) gb_hid(C) gb_gpio(C) gb_gbphy(C) gb_firmware(C) gb_spilib(C) gb_bootrom(C) greybus wpanusb ieee802154_socket mac802154 ieee802154 ip_tables x_tables pru_rproc icss_iep crct10dif_ce ti_j721e_cpsw_virt_mac ti_am335x_tscadc pruss tidss cdns_dsi cdns_dphy spidev
[   24.063644] Unable to handle kernel paging request at virtual address ffff80086dfeb000
[   24.114284] CPU: 1 PID: 1053 Comm: id Tainted: G         C O      5.10.109-ti-arm64-r49 #1bullseye
[   24.122175] Mem abort info:
[   24.131108] Hardware name: BeagleBoard.org BeagleBone AI-64 (DT)
[   24.133888]   ESR = 0x96000005
[   24.139874] pstate: 60000085 (nZCv daIf -PAN -UAO -TCO BTYPE=--)
[   24.142911]   EC = 0x25: DABT (current EL), IL = 32 bits
[   24.148898] pc : __list_add_valid+0x54/0x90
[   24.154188]   SET = 0, FnV = 0
[   24.158355] lr : __list_add_valid+0x54/0x90
[   24.161392]   EA = 0, S1PTW = 0
[   24.165557] sp : ffff8000140f3930
[   24.168683] Data abort info:
[   24.171982] x29: ffff8000140f3930 
[   24.174847]   ISV = 0, ISS = 0x00000005
[   24.174850] x28: 0000000000000001 
[   24.178234]   CM = 0, WnR = 0
[   24.182051] 
[   24.182053] x27: fffffe0020d9cb88 
[   24.185441] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000838be000
[   24.188392] x26: 0000000000000000 
[   24.189871] [ffff80086dfeb000] pgd=00000008fffff003
[   24.193256] 
[   24.199936] , p4d=00000008fffff003
[   24.203321] x25: 0000000000000000 
[   24.208179] , pud=0000000000000000
[   24.209658] x24: ffff000812625400 
[   24.213042] 
[   24.216428] 
[   24.226155] x23: 0000000000000000 x22: 0000000000000000 
[   24.231452] x21: fffffe0020d9ca48 x20: ffff000812625400 
[   24.236748] x19: fffffe0020d9cb80 x18: 0000000000000002 
[   24.242045] x17: 0000000000000000 x16: 0000000000000000 
[   24.247341] x15: 0000000000000030 x14: 3030343532363231 
[   24.252638] x13: 00000000000002ab x12: ffff8000140f3620 
[   24.257934] x11: ffff800011cbc040 x10: 00000000fffff800 
[   24.263230] x9 : ffff800011cbc040 x8 : ffff800011c90040 
[   24.268527] x7 : ffff800011cbc040 x6 : 0000000000000000 
[   24.273823] x5 : 0000000000000000 x4 : ffff00087f97f9c8 
[   24.279120] x3 : 0000000000000000 x2 : 0000000000000000 
[   24.284416] x1 : ffff000815688000 x0 : 0000000000000075 
[   24.289713] Call trace:
[   24.292148]  __list_add_valid+0x54/0x90
[   24.295973]  __pagevec_lru_add_fn+0x20c/0x3ec
[   24.300315]  lru_add_drain_cpu+0x148/0x584
[   24.304396]  lru_add_drain+0x20/0x54
[   24.307959]  unmap_region+0x50/0x11c
[   24.311521]  __do_munmap+0x23c/0x4e0
[   24.315081]  __vm_munmap+0x6c/0xe0
[   24.318468]  vm_munmap+0x14/0x20
[   24.321683]  0xffff80201039e700
[   24.324815] Code: aa0403e3 d0007800 913c0000 9420bd9f (d4210000) 
[   24.330892] ---[ end trace 868ed88d07118b5c ]---
[   24.335494] Internal error: Oops: 96000005 [#2] PREEMPT SMP
[   24.335496] note: id[1053] exited with preempt_count 3
[   24.346168] Modules linked in: rpmsg_char virtio_rpmsg_bus cdns_csi2rx xt_conntrack nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack_netlink nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xfrm_user xfrm_algo nft_counter sg xt_addrtype nft_compat nf_tables nfnetlink br_netfilter bridge stp llc ti_k3_r5_remoteproc aufs ti_am335x_adc bluetooth irq_pruss_intc nls_ascii nls_cp437 vxe_enc pvrsrvkm(O) vxd_dec sa2ul extcon_usbc_tusb322 authenc videobuf2_dma_sg ov5640 ti_k3_dsp_remoteproc v4l2_mem2mem j721e_csi2rx videobuf2_dma_contig pci_endpoint_test v4l2_fwnode rti_wdt uio_pdrv_genirq uio gb_uart(C) gb_spi(C) gb_raw(C) gb_netlink gb_loopback(C) gb_log(C) gb_i2c(C) gb_hid(C) gb_gpio(C) gb_gbphy(C) gb_firmware(C) gb_spilib(C) gb_bootrom(C) greybus wpanusb ieee802154_socket mac802154 ieee802154 ip_tables x_tables pru_rproc icss_iep crct10dif_ce ti_j721e_cpsw_virt_mac ti_am335x_tscadc pruss tidss cdns_dsi cdns_dphy spidev
[   24.426451] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D  C O      5.10.109-ti-arm64-r49 #1bullseye
[   24.435731] Hardware name: BeagleBoard.org BeagleBone AI-64 (DT)
[   24.441719] pstate: 40000085 (nZcv daIf -PAN -UAO -TCO BTYPE=--)
[   24.447711] pc : refill_obj_stock+0x84/0x18c
[   24.451966] lr : refill_obj_stock+0x80/0x18c
[   24.456219] sp : ffff800011f5bd30
[   24.459519] x29: ffff800011f5bd30 x28: ffff00081541db40 
[   24.464816] x27: 00000000fffffff8 x26: ffff800011e8e000 
[   24.470112] x25: ffff800011972008 x24: ffff8000100c4830 
[   24.475409] x23: ffff000839179508 x22: 00000000000000c8 
[   24.480705] x21: 0000000000000000 x20: ffff000839179508 
[   24.486002] x19: ffff00087f970bc0 x18: 0000000000000000 
[   24.491298] x17: 0000000000000000 x16: 0000000000000000 
[   24.496594] x15: 000002dcafacc7da x14: 0000000000000152 
[   24.501890] x13: 0000000000000001 x12: 0000000000000000 
[   24.507186] x11: ffff00087f992a40 x10: 0000000000000001 
[   24.512482] x9 : ffff800011c77bc0 x8 : 000000000001cfe3 
[   24.517779] x7 : ffff000810170400 x6 : 0000000000000000 
[   24.523075] x5 : ffffffffffffff43 x4 : 0000000000000000 
[   24.528371] x3 : 0000000000000001 x2 : 0000000000000000 
[   24.533667] x1 : ffff800011c77bc0 x0 : ffff80086dfeb000 
[   24.538963] Call trace:
[   24.541399]  refill_obj_stock+0x84/0x18c
[   24.545307]  obj_cgroup_uncharge+0x10/0x20
[   24.549390]  kmem_cache_free+0x390/0x4f4
[   24.553301]  put_cred_rcu+0xac/0x120
[   24.556864]  rcu_core+0x22c/0x8f0
[   24.560165]  rcu_core_si+0x10/0x20
[   24.563552]  efi_header_end+0x158/0x43c
[   24.567375]  irq_exit+0xb8/0xe0
[   24.570504]  __handle_domain_irq+0xb4/0x130
[   24.574674]  gic_handle_irq+0xc0/0x140
[   24.578409]  el1_irq+0xcc/0x180
[   24.581538]  arch_cpu_idle+0x18/0x30
[   24.585098]  default_idle_call+0x34/0x1b8
[   24.589094]  do_idle+0xb4/0x11c
[   24.592222]  cpu_startup_entry+0x28/0x60
[   24.596130]  rest_init+0xd4/0xe4
[   24.599345]  arch_call_rest_init+0x10/0x1c
[   24.603426]  start_kernel+0x544/0x57c
[   24.607075] Code: b9001020 d2800023 97ffdd24 8b000040 (c85f7c05) 
[   24.613154] ---[ end trace 868ed88d07118b5d ]---
[   24.617756] Kernel panic - not syncing: (efault): Fatal exception in interrupt
[   24.624957] SMP: stopping secondary CPUs
[   25.704866] SMP: failed to stop secondary CPUs 0-1
[   25.709649] Kernel Offset: disabled
[   25.713123] CPU features: 0x8240022,20006008
[   25.717377] Memory Limit: none
[   25.720423] ---[ end Kernel panic - not syncing: (efault): Fatal exception in interrupt ]---

OH Fun!

if it is still running, can you do:

sudo apt update
sudo apt upgrade

It should pull in “5.10.120-ti-arm64-r50”…

Regards,

1 Like

This has all gone a bit wrong.

I have the emmc updated which is now not able to mount the ssd, should have updated that first.

But, now getting:

[  469.567726] Unable to handle kernel paging request at virtual address fffffec820d64e08
[  469.575628] Mem abort info:
[  469.578408]   ESR = 0x96000004
[  469.581450]   EC = 0x25: DABT (current EL), IL = 32 bits
[  469.586744]   SET = 0, FnV = 0
[  469.589784]   EA = 0, S1PTW = 0
[  469.592910] Data abort info:
[  469.595777]   ISV = 0, ISS = 0x00000004
[  469.599598]   CM = 0, WnR = 0
[  469.602553] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000838ae000
[  469.609234] [fffffec820d64e08] pgd=0000000000000000, p4d=0000000000000000
[  469.616007] Internal error: Oops: 96000004 [#13] PREEMPT SMP
[  469.621648] Modules linked in: md4 nls_utf8 cifs libdes libarc4 cfg80211 xt_conntrack nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack_netlink nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xfrm_user xfrm_algo nft_counter rpmsg_char xt_addrtype nft_compat virtio_rpmsg_bus nf_tables nfnetlink br_netfilter bridge stp llc cdns_csi2rx aufs sg bluetooth ti_am335x_adc ti_k3_r5_remoteproc irq_pruss_intc nls_ascii nls_cp437 pvrsrvkm(O) vxd_dec vxe_enc sa2ul authenc j721e_csi2rx ti_k3_dsp_remoteproc videobuf2_dma_contig videobuf2_dma_sg v4l2_mem2mem ov5640 pci_endpoint_test v4l2_fwnode extcon_usbc_tusb322 rti_wdt uio_pdrv_genirq uio gb_uart(C) gb_spi(C) gb_raw(C) gb_netlink gb_loopback(C) gb_log(C) gb_i2c(C) gb_hid(C) gb_gpio(C) gb_gbphy(C) gb_firmware(C) gb_spilib(C) gb_bootrom(C) greybus wpanusb ieee802154_socket mac802154 ieee802154 ip_tables x_tables pru_rproc icss_iep crct10dif_ce ti_j721e_cpsw_virt_mac ti_am335x_tscadc pruss tidss cdns_dsi cdns_dphy spidev
[  469.705601] CPU: 1 PID: 540 Comm: avahi-daemon Tainted: G      D WC O      5.10.120-ti-arm64-r50 #1bullseye
[  469.715315] Hardware name: BeagleBoard.org BeagleBone AI-64 (DT)
[  469.721303] pstate: 80000085 (Nzcv daIf -PAN -UAO -TCO BTYPE=--)
[  469.727301] pc : __list_add_valid+0x10/0x90
[  469.731471] lr : free_unref_page_commit+0xbc/0x170
[  469.736245] sp : ffff800013b7b870
[  469.739545] x29: ffff800013b7b870 x28: 0000000000000000 
[  469.744842] x27: ffff00087f994c40 x26: fffffe0020b06388 
[  469.750138] x25: ffff80086e019000 x24: fffffec820d64e00 
[  469.755435] x23: 0000000000000010 x22: ffff00087f994c30 
[  469.760731] x21: ffff800011e0a9c0 x20: fffffe0020b06380 
[  469.766027] x19: ffff80001197bc30 x18: 0000000000000000 
[  469.771323] x17: 0000000000000000 x16: 0000000000000000 
[  469.776619] x15: 0000000000000000 x14: 000000000000013d 
[  469.781915] x13: 0000000000000001 x12: 0000000000000000 
[  469.787212] x11: 0000000000000001 x10: 0000000000000ab0 
[  469.792508] x9 : ffff800013b7b820 x8 : ffff00081273f410 
[  469.797804] x7 : 0000000000000001 x6 : 0000000000076b62 
[  469.803101] x5 : ffff800011e0a9c0 x4 : fffffec820d64e00 
[  469.808397] x3 : ffff800011962008 x2 : fffffec820d64e00 
[  469.813693] x1 : ffff00087f994c40 x0 : fffffe0020b06388 
[  469.818989] Call trace:
[  469.821424]  __list_add_valid+0x10/0x90
[  469.825246]  free_unref_page_commit+0xbc/0x170
[  469.829674]  free_unref_page+0xbc/0xe0
[  469.833409]  __free_pages+0x9c/0xd0
[  469.836884]  free_pages+0x34/0x40
[  469.840187]  poll_freewait+0xa4/0xcc
[  469.843748]  do_sys_poll+0x428/0x5b4
[  469.847309]  __arm64_sys_ppoll+0xa0/0x130
[  469.851307]  el0_svc_common.constprop.0+0x78/0x1f0
[  469.856081]  do_el0_svc+0x24/0x90
[  469.859385]  el0_svc+0x14/0x20
[  469.862426]  el0_sync_handler+0x1a4/0x1b0
[  469.866420]  el0_sync+0x180/0x1c0
[  469.869724] Code: d503233f a9bf7bfd aa0203e4 910003fd (f9400442) 
[  469.875800] ---[ end trace a95b945ef87077bf ]---
[  469.880469] Unable to handle kernel paging request at virtual address fffffec820d64e00
[  469.888364] Mem abort info:
[  469.891144]   ESR = 0x96000004
[  469.894184]   EC = 0x25: DABT (current EL), IL = 32 bits
[  469.899478]   SET = 0, FnV = 0
[  469.902517]   EA = 0, S1PTW = 0
[  469.905643] Data abort info:
[  469.908510]   ISV = 0, ISS = 0x00000004
[  469.912331]   CM = 0, WnR = 0
[  469.915285] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000838ae000
[  469.921966] [fffffec820d64e00] pgd=0000000000000000, p4d=0000000000000000
[  469.928736] Internal error: Oops: 96000004 [#14] PREEMPT SMP
[  469.934376] Modules linked in: md4 nls_utf8 cifs libdes libarc4 cfg80211 xt_conntrack nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack_netlink nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xfrm_user xfrm_algo nft_counter rpmsg_char xt_addrtype nft_compat virtio_rpmsg_bus nf_tables nfnetlink br_netfilter bridge stp llc cdns_csi2rx aufs sg bluetooth ti_am335x_adc ti_k3_r5_remoteproc irq_pruss_intc nls_ascii nls_cp437 pvrsrvkm(O) vxd_dec vxe_enc sa2ul authenc j721e_csi2rx ti_k3_dsp_remoteproc videobuf2_dma_contig videobuf2_dma_sg v4l2_mem2mem ov5640 pci_endpoint_test v4l2_fwnode extcon_usbc_tusb322 rti_wdt uio_pdrv_genirq uio gb_uart(C) gb_spi(C) gb_raw(C) gb_netlink gb_loopback(C) gb_log(C) gb_i2c(C) gb_hid(C) gb_gpio(C) gb_gbphy(C) gb_firmware(C) gb_spilib(C) gb_bootrom(C) greybus wpanusb ieee802154_socket mac802154 ieee802154 ip_tables x_tables pru_rproc icss_iep crct10dif_ce ti_j721e_cpsw_virt_mac ti_am335x_tscadc pruss tidss cdns_dsi cdns_dphy spidev
[  470.018308] CPU: 1 PID: 540 Comm: avahi-daemon Tainted: G      D WC O      5.10.120-ti-arm64-r50 #1bullseye
[  470.028022] Hardware name: BeagleBoard.org BeagleBone AI-64 (DT)
[  470.034009] pstate: 80000085 (Nzcv daIf -PAN -UAO -TCO BTYPE=--)
[  470.039998] pc : __list_del_entry_valid+0x10/0xb0
[  470.044687] lr : get_page_from_freelist+0x208/0x1900
[  470.049634] sp : ffff800013b7b030
[  470.052934] x29: ffff800013b7b030 x28: 0000000000000000 
[  470.058231] x27: ffff00081273e900 x26: 0000000000000000 
[  470.063527] x25: ffff800011e0a9c0 x24: 0000aaaab2df7000 
[  470.068823] x23: 0000000000102800 x22: 0000000000000000 
[  470.074119] x21: 0000000000000000 x20: fffffec820d64df8 
[  470.079415] x19: fffffec820d64e00 x18: 0000000000000000 
[  470.084712] x17: 0000000000000000 x16: 0000000000000000 
[  470.090008] x15: 0000000000000002 x14: 0000000000000001 
[  470.095304] x13: 000000000003b629 x12: ffff800013b7b250 
[  470.100600] x11: ffff800011cac090 x10: 00000000fffff800 
[  470.105897] x9 : ffff800011cac090 x8 : ffff800011c80090 
[  470.111193] x7 : 0000000000000001 x6 : 0000000000000000 
[  470.116489] x5 : 000000000003b629 x4 : ffff80001197bc30 
[  470.121785] x3 : 0000000000000100 x2 : ffff00087f994c40 
[  470.127081] x1 : fffffec820d64e00 x0 : fffffec820d64e00 
[  470.132377] Call trace:
[  470.134812]  __list_del_entry_valid+0x10/0xb0
[  470.139154]  get_page_from_freelist+0x208/0x1900
[  470.143755]  __alloc_pages_nodemask+0x120/0x300
[  470.148269]  __get_free_pages+0x1c/0x54
[  470.152091]  __tlb_remove_page_size+0x88/0xc0
[  470.156433]  unmap_page_range+0x5c0/0x964
[  470.160427]  unmap_single_vma+0x88/0x11c
[  470.164335]  unmap_vmas+0x70/0xf0
[  470.167635]  exit_mmap+0xc4/0x17c
[  470.170937]  mmput+0x88/0x180
[  470.173892]  do_exit+0x2d4/0xa70
[  470.177108]  die+0x21c/0x25c
[  470.179976]  die_kernel_fault+0x64/0x7c
[  470.183797]  __do_kernel_fault+0x74/0x150
[  470.187792]  do_translation_fault+0x54/0xcc
[  470.191960]  do_mem_abort+0x44/0xa4
[  470.195435]  el1_abort+0x44/0x6c
[  470.198650]  el1_sync_handler+0xac/0xd0
[  470.202470]  el1_sync+0x88/0x140
[  470.205685]  __list_add_valid+0x10/0x90
[  470.209507]  free_unref_page_commit+0xbc/0x170
[  470.213935]  free_unref_page+0xbc/0xe0
[  470.217668]  __free_pages+0x9c/0xd0
[  470.221143]  free_pages+0x34/0x40
[  470.224445]  poll_freewait+0xa4/0xcc
[  470.228006]  do_sys_poll+0x428/0x5b4
[  470.231567]  __arm64_sys_ppoll+0xa0/0x130
[  470.235562]  el0_svc_common.constprop.0+0x78/0x1f0
[  470.240336]  do_el0_svc+0x24/0x90
[  470.243637]  el0_svc+0x14/0x20
[  470.246678]  el0_sync_handler+0x1a4/0x1b0
[  470.250672]  el0_sync+0x180/0x1c0
[  470.253975] Code: d503233f a9bf7bfd d2802003 910003fd (a9400402) 
[  470.260050] ---[ end trace a95b945ef87077c0 ]---
[  470.264651] note: avahi-daemon[540] exited with preempt_count 1
[  470.270551] Fixing recursive fault but reboot is needed!
[  470.328363] Unable to handle kernel paging request at virtual address fffffec820675900
[  470.336264] Mem abort info:
[  470.339045]   ESR = 0x96000004
[  470.342086]   EC = 0x25: DABT (current EL), IL = 32 bits
[  470.347381]   SET = 0, FnV = 0
[  470.350420]   EA = 0, S1PTW = 0
[  470.353546] Data abort info:
[  470.356414]   ISV = 0, ISS = 0x00000004
[  470.360234]   CM = 0, WnR = 0
[  470.363188] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000838ae000
[  470.369870] [fffffec820675900] pgd=0000000000000000, p4d=0000000000000000
[  470.376644] Internal error: Oops: 96000004 [#15] PREEMPT SMP
[  470.382285] Modules linked in: md4 nls_utf8 cifs libdes libarc4 cfg80211 xt_conntrack nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack_netlink nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xfrm_user xfrm_algo nft_counter rpmsg_char xt_addrtype nft_compat virtio_rpmsg_bus nf_tables nfnetlink br_netfilter bridge stp llc cdns_csi2rx aufs sg bluetooth ti_am335x_adc ti_k3_r5_remoteproc irq_pruss_intc nls_ascii nls_cp437 pvrsrvkm(O) vxd_dec vxe_enc sa2ul authenc j721e_csi2rx ti_k3_dsp_remoteproc videobuf2_dma_contig videobuf2_dma_sg v4l2_mem2mem ov5640 pci_endpoint_test v4l2_fwnode extcon_usbc_tusb322 rti_wdt uio_pdrv_genirq uio gb_uart(C) gb_spi(C) gb_raw(C) gb_netlink gb_loopback(C) gb_log(C) gb_i2c(C) gb_hid(C) gb_gpio(C) gb_gbphy(C) gb_firmware(C) gb_spilib(C) gb_bootrom(C) greybus wpanusb ieee802154_socket mac802154 ieee802154 ip_tables x_tables pru_rproc icss_iep crct10dif_ce ti_j721e_cpsw_virt_mac ti_am335x_tscadc pruss tidss cdns_dsi cdns_dphy spidev
[  470.466234] CPU: 1 PID: 402 Comm: systemd-network Tainted: G      D WC O      5.10.120-ti-arm64-r50 #1bullseye
[  470.476208] Hardware name: BeagleBoard.org BeagleBone AI-64 (DT)
[  470.482196] pstate: 80000085 (Nzcv daIf -PAN -UAO -TCO BTYPE=--)
[  470.488193] pc : __list_del_entry_valid+0x10/0xb0
[  470.492883] lr : get_page_from_freelist+0x208/0x1900
[  470.497831] sp : ffff8000131bb800
[  470.501131] x29: ffff8000131bb800 x28: 0000000000000000 
[  470.506427] x27: 0000000000000067 x26: 0000000000000000 
[  470.511723] x25: ffff800011e0a9c0 x24: ffff000815370408 
[  470.517020] x23: 0000000000100cca x22: 0000000000000000 
[  470.522316] x21: 0000000000000000 x20: fffffec8206758f8 
[  470.527612] x19: fffffec820675900 x18: 0000000000000000 
[  470.532908] x17: 0000000000000000 x16: 0000000000000000 
[  470.538204] x15: 0000000000000003 x14: 0000000000000001 
[  470.543501] x13: 000000000003b629 x12: 0000000000000008 
[  470.548797] x11: 0101010101010101 x10: ffff8000131bbd30 
[  470.554093] x9 : 0000000000000067 x8 : ffff0008161d6900 
[  470.559389] x7 : 0000000000000000 x6 : 0000000000000000 
[  470.564685] x5 : 000000000003b629 x4 : ffff80001197bc30 
[  470.569981] x3 : 0000000000000100 x2 : ffff00087f994c50 
[  470.575277] x1 : fffffec820675900 x0 : fffffec820675900 
[  470.580573] Call trace:
[  470.583008]  __list_del_entry_valid+0x10/0xb0
[  470.587349]  get_page_from_freelist+0x208/0x1900
[  470.591951]  __alloc_pages_nodemask+0x120/0x300
[  470.596466]  shmem_alloc_page+0x30/0x60
[  470.600288]  shmem_alloc_and_acct_page+0x120/0x1f0
[  470.605062]  shmem_getpage_gfp+0x12c/0x800
[  470.609144]  shmem_write_begin+0x48/0x80
[  470.613053]  generic_perform_write+0xa8/0x1c0
[  470.617395]  __generic_file_write_iter+0x138/0x1c0
[  470.622168]  generic_file_write_iter+0x78/0xd0
[  470.626597]  new_sync_write+0xe8/0x184
[  470.630331]  vfs_write+0x22c/0x290
[  470.633718]  ksys_write+0x68/0xf4
[  470.637019]  __arm64_sys_write+0x20/0x2c
[  470.640928]  el0_svc_common.constprop.0+0x78/0x1f0
[  470.645702]  do_el0_svc+0x24/0x90
[  470.649005]  el0_svc+0x14/0x20
[  470.652046]  el0_sync_handler+0x1a4/0x1b0
[  470.656039]  el0_sync+0x180/0x1c0
[  470.659344] Code: d503233f a9bf7bfd d2802003 910003fd (a9400402) 
[  470.665420] ---[ end trace a95b945ef87077c1 ]---
[  470.670164] Unable to handle kernel paging request at virtual address fffffec820d64e00
[  470.678061] Mem abort info:
[  470.680841]   ESR = 0x96000004
[  470.683882]   EC = 0x25: DABT (current EL), IL = 32 bits
[  470.689175]   SET = 0, FnV = 0
[  470.692215]   EA = 0, S1PTW = 0
[  470.695341] Data abort info:
[  470.698208]   ISV = 0, ISS = 0x00000004
[  470.702028]   CM = 0, WnR = 0
[  470.704983] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000838ae000
[  470.711664] [fffffec820d64e00] pgd=0000000000000000, p4d=0000000000000000
[  470.718436] Internal error: Oops: 96000004 [#16] PREEMPT SMP
[  470.724076] Modules linked in: md4 nls_utf8 cifs libdes libarc4 cfg80211 xt_conntrack nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack_netlink nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xfrm_user xfrm_algo nft_counter rpmsg_char xt_addrtype nft_compat virtio_rpmsg_bus nf_tables nfnetlink br_netfilter bridge stp llc cdns_csi2rx aufs sg bluetooth ti_am335x_adc ti_k3_r5_remoteproc irq_pruss_intc nls_ascii nls_cp437 pvrsrvkm(O) vxd_dec vxe_enc sa2ul authenc j721e_csi2rx ti_k3_dsp_remoteproc videobuf2_dma_contig videobuf2_dma_sg v4l2_mem2mem ov5640 pci_endpoint_test v4l2_fwnode extcon_usbc_tusb322 rti_wdt uio_pdrv_genirq uio gb_uart(C) gb_spi(C) gb_raw(C) gb_netlink gb_loopback(C) gb_log(C) gb_i2c(C) gb_hid(C) gb_gpio(C) gb_gbphy(C) gb_firmware(C) gb_spilib(C) gb_bootrom(C) greybus wpanusb ieee802154_socket mac802154 ieee802154 ip_tables x_tables pru_rproc icss_iep crct10dif_ce ti_j721e_cpsw_virt_mac ti_am335x_tscadc pruss tidss cdns_dsi cdns_dphy spidev
[  470.808011] CPU: 1 PID: 402 Comm: systemd-network Tainted: G      D WC O      5.10.120-ti-arm64-r50 #1bullseye
[  470.817985] Hardware name: BeagleBoard.org BeagleBone AI-64 (DT)
[  470.823973] pstate: 80000085 (Nzcv daIf -PAN -UAO -TCO BTYPE=--)
[  470.829965] pc : __list_del_entry_valid+0x10/0xb0
[  470.834655] lr : get_page_from_freelist+0x208/0x1900
[  470.839602] sp : ffff8000131bafc0
[  470.842902] x29: ffff8000131bafc0 x28: 0000000000000000 
[  470.848198] x27: ffff0008161d6900 x26: 0000000000000000 
[  470.853494] x25: ffff800011e0a9c0 x24: 0000aaaac8627000 
[  470.858790] x23: 0000000000102800 x22: 0000000000000000 
[  470.864086] x21: 0000000000000000 x20: fffffec820d64df8 
[  470.869382] x19: fffffec820d64e00 x18: 0000000000000000 
[  470.874678] x17: 0000000000000000 x16: 0000000000000000 
[  470.879975] x15: 0000000000000002 x14: 0000000000000001 
[  470.885271] x13: 000000000003b625 x12: 0000000000000001 
[  470.890567] x11: 0000000db333c7ec x10: 0000000000000ab0 
[  470.895863] x9 : ffff8000131bb350 x8 : ffff0008161d7410 
[  470.901159] x7 : 0000000000000001 x6 : 0000000000000000 
[  470.906455] x5 : 000000000003b625 x4 : ffff80001197bc30 
[  470.911752] x3 : 0000000000000100 x2 : ffff00087f994c40 
[  470.917048] x1 : fffffec820d64e00 x0 : fffffec820d64e00 
[  470.922344] Call trace:
[  470.924779]  __list_del_entry_valid+0x10/0xb0
[  470.929121]  get_page_from_freelist+0x208/0x1900
[  470.933722]  __alloc_pages_nodemask+0x120/0x300
[  470.938237]  __get_free_pages+0x1c/0x54
[  470.942058]  __tlb_remove_page_size+0x88/0xc0
[  470.946401]  unmap_page_range+0x5c0/0x964
[  470.950396]  unmap_single_vma+0x88/0x11c
[  470.954303]  unmap_vmas+0x70/0xf0
[  470.957603]  exit_mmap+0xc4/0x17c
[  470.960905]  mmput+0x88/0x180
[  470.963860]  do_exit+0x2d4/0xa70
[  470.967076]  die+0x21c/0x25c
[  470.969944]  die_kernel_fault+0x64/0x7c
[  470.973765]  __do_kernel_fault+0x74/0x150
[  470.977760]  do_translation_fault+0x54/0xcc
[  470.981927]  do_mem_abort+0x44/0xa4
[  470.985402]  el1_abort+0x44/0x6c
[  470.988617]  el1_sync_handler+0xac/0xd0
[  470.992437]  el1_sync+0x88/0x140
[  470.995652]  __list_del_entry_valid+0x10/0xb0
[  470.999994]  get_page_from_freelist+0x208/0x1900
[  471.004596]  __alloc_pages_nodemask+0x120/0x300
[  471.009111]  shmem_alloc_page+0x30/0x60
[  471.012932]  shmem_alloc_and_acct_page+0x120/0x1f0
[  471.017706]  shmem_getpage_gfp+0x12c/0x800
[  471.021788]  shmem_write_begin+0x48/0x80
[  471.025697]  generic_perform_write+0xa8/0x1c0
[  471.030038]  __generic_file_write_iter+0x138/0x1c0
[  471.034812]  generic_file_write_iter+0x78/0xd0
[  471.039240]  new_sync_write+0xe8/0x184
[  471.042973]  vfs_write+0x22c/0x290
[  471.046359]  ksys_write+0x68/0xf4
[  471.049660]  __arm64_sys_write+0x20/0x2c
[  471.053568]  el0_svc_common.constprop.0+0x78/0x1f0
[  471.058342]  do_el0_svc+0x24/0x90
[  471.061643]  el0_svc+0x14/0x20
[  471.064684]  el0_sync_handler+0x1a4/0x1b0
[  471.068677]  el0_sync+0x180/0x1c0
[  471.071980] Code: d503233f a9bf7bfd d2802003 910003fd (a9400402) 
[  471.078055] ---[ end trace a95b945ef87077c2 ]---
[  471.082658] note: systemd-network[402] exited with preempt_count 1
[  471.088818] Fixing recursive fault but reboot is needed!

I’ll try to look into it tomorrow, its beer time now…

Ok, managed to get everything back and running.

Both EMMC and SSD are updated.

Still getting same issue:

=> usbboot usb3 0:1

Loading from usb device 0, partition 1: Name: usbda1  Type: U-Boot
BUG at drivers/usb/host/xhci-mem.c:39/xhci_flush_cache()!
BUG!
resetting ...

Hi all, so at the date of today,
if I want to boot on usb/ssd, what’s the correct way of doing that ? any successful boot at this time on ai64 ?
regards.

This question is quite important when we want to dive in long-term in embedded linux without corrupting too many uSd card,
( speed would also be significantly improved too with usb ssd boot… )

The AI-64 in my possession is now equipped with a wifi intel AX210 and every thing work like a charm from my MacBook through ssh ( no wired usb connection anymore great ! )

  • Next point to fix for a decent embedded linux platform study (ready to use) would be
    (if it’s possible) disabling any non used peripherals for helping to save unnecessary power consumption actually i’m about 7.3w idle not logged in console 7.8w logged and
    11.6 watts peak under load:
    ( without usb peripherals on Debian11 minimal console img).
  • And Booting from USB of course for obvious reasons ! :wink:

What I have understood so far is that the extlinux.conf is a new standardised way to load boot
variable/path to the kernel ? (armhf of debian11 sim to still use uEnv.txt)
and so we can load any fdtoverlays=/path/ for config IO pins at startup.
( well, does this would help to shutdown PRU or DSP ? if it’s possible to save power there…
I plane to play with linux userspace kernel first, before playing with Dsp… )

But about the USB boot this doesn’t sound quiet comprehensive yet for me…
So what’s the trick for asking the board to load the extlinux.conf at the specific path on USB ?
any documentation/link would be very appreciate. :slight_smile:

And thanks for this nice open-source platform great job there !

I have it working with loading the kernel from emmc then booting from usb.

I could not get it to load the kernel from usb, it just bombs out on xhci_flush_cache(), see posts above.

1 Like

Hope the beagle team will investigate this question in the upcoming features to add
that may improve seriously the performance of the board…

By my side I have successfully loaded my whole linux root system from usb on (SSD)
by booting from the sd card…
just simply edited (as above) the UUID “blkid -p /dev/sda1” in the extlinux.conf but I just can read only…
…and lost the whole system privilege: “must be owned by uid 0” at each write so maybe the file system must be loaded with the same PARTUUID as Sd card ? maybe only the bootloader/U-boot can do that I have no idea… it’s fill like its definitively possible…

1 Like

It is definitely possible to do that, have you also changed /etc/fstab on the SSD after you copied the root system?

You need to change that so it is mounting the SSD not the SDCard.

Yes, I have done that too with PARTUUID on extlinux.conf and the fstab of the ssd disk ( only on the line where root is supposed to be loaded… ), but same result :“boot and load the root file system at / on ssd, but in read only even when switching flag from ro to rw on both files before boot…”
We are close, but my investigation point sooner in the early stage of the bootloader process with u-boot or initrd in order to keep the kernel root access…
…

I have had it working from SDCard/SSD before I went to EMMC/SSD.

I gave up on the AI64 and it is in a box somewhere, If I get some time I will find it and connect it up and have a look…

EMMC on board is like (MMC) sd card, writing linux log files on it will destroy the memory in less than a year… if you let it run continuously(these are infos collected on books and on this forum), so noatime flag and rootfs loading from nvme must be a checkpoint for reliability. destroing the embedded sd on the ai-64 board with this kind of misuses is… oh you know… :wink:

Why would the logs be being written to the EMMC?

For EMMC/SSD:

So I have this in extlinux.conf (EMMC):

TIMEOUT 30
DEFAULT Linux SSD

MENU TITLE AI-64 boot options

label Linux SSD
    kernel /Image
    append console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=UUID=
4c61565c-ce5a-4cc3-8410-9f25b938fefc ro rootfstype=ext4 rootwait net.ifnames=0
    fdtdir /
    initrd /initrd.img

I have this in /etc/fstab (on the SSD):

UUID=4c61565c-ce5a-4cc3-8410-9f25b938fefc  /  ext4  noatime,errors=remount-ro  0  1
/dev/mmcblk0p1  /boot/firmware vfat defaults 0 0
debugfs  /sys/kernel/debug  debugfs  mode=755,uid=root,gid=gpio,defaults  0  0

Logged in as root with / on the SSD:

root@AI64:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev           1007M     0 1007M   0% /dev
tmpfs           218M  1.8M  216M   1% /run
/dev/sda2       229G   14G  204G   7% /
tmpfs           1.1G     0  1.1G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/mmcblk0p1  128M   50M   79M  39% /boot/firmware
tmpfs           218M   16K  218M   1% /run/user/0