Opened 5 years ago

Last modified 5 years ago

#11927 new bug

Loader FATFS improperly triggering on TARFS

Reported by: kallisti5 Owned by: mmu_man
Priority: normal Milestone: Unscheduled
Component: System/Boot Loader Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Under u-boot, FATFS in the loader is improperly triggering on a TARFS filesystem (floppyboot.tgz) resulting in a lockup.

with FATFS tracing:

�fdt_get_range_offset: range offset: 0x0
fdt_get_device_reg_byname: /axi/mbox found @ 0x3f00b880
Found boot tgz from FDT @ 0x079c3000, 1598741 bytes
argc = 0
os: 2
gd @ 0x00000000
FDT @ 0x079be000:
fdt_totalsize: 8320
fdt_off_dt_struct: 88
fdt_off_dt_strings: 7228
fdt_off_mem_rsvmap: 40
fdt_version: 17
fdt_last_comp_version: 16
fdt_boot_cpuid_phys: 3840
fdt_size_dt_strings: 642
fdt_size_dt_struct: 7140
fdtSize: 0x2080
checking for memory...
0: base = 0,size = 134217728
total physical memory = 128MB
Found bootargs: 
args.arguments_count = 1
args.arguments[0] @8098cc04 = ''
adding args: ''
Welcome to the Haiku boot loader!
platform_add_boot_device
Memory Disk at: 0x80804000 size: 186515
add_partitions_for(0x8098e160, mountFS = no)
add_partitions_for(fd = 0, mountFS = no)
0x8098e1e0 Partition::Partition
0x8098e1e0 Partition::Scan()
check for partitioning_system: Intel Partition Map
check for partitioning_system: Intel Extended Partition
dosfs_identify_file_system()
Volume()
Volume: reading bootsector
Volume: checking signature
Volume: signature ok
<lockup>

With FATFS support disabled in loader:

Found boot tgz from FDT @ 0x079c3000, 1598741 bytes
argc = 0
os: 2
gd @ 0x00000000
FDT @ 0x079be000:
fdt_totalsize: 8320
fdt_off_dt_struct: 88
fdt_off_dt_strings: 7228
fdt_off_mem_rsvmap: 40
fdt_version: 17
fdt_last_comp_version: 16
fdt_boot_cpuid_phys: 3840
fdt_size_dt_strings: 642
fdt_size_dt_struct: 7140
fdtSize: 0x2080
checking for memory...
0: base = 0,size = 134217728
total physical memory = 128MB
Found bootargs: 
args.arguments_count = 1
args.arguments[0] @8098cc04 = ''
adding args: ''
Welcome to the Haiku boot loader!
platform_add_boot_device
Memory Disk at: 0x80804000 size: 186515
add_partitions_for(0x8098e160, mountFS = no)
add_partitions_for(fd = 0, mountFS = no)
0x8098e1e0 Partition::Partition
0x8098e1e0 Partition::Scan()
check for partitioning_system: Intel Partition Map
check for partitioning_system: Intel Extended Partition
platform_get_boot_partition
0x8098e1e0 Partition::_Mount check for file_system: BFS Filesystem
0x8098e1e0 Partition::_Mount check for file_system: TAR Filesystem
tarfs: "data/", 0 bytes
tarfs: "data/mime_db/", 0 bytes
tarfs: "data/mime_db/application/", 0 bytes
tarfs: "data/mime_db/application/x-vnd.haiku-usb", 0 bytes
tarfs: "data/mime_db/application/x-vnd.haiku-uhci", 0 bytes
tarfs: "data/mime_db/application/x-vnd.haiku-ohci", 0 bytes
tarfs: "data/mime_db/application/x-vnd.haiku-ehci", 0 bytes
tarfs: "home/", 0 bytes
tarfs: "home/config/", 0 bytes
tarfs: "home/config/settings/", 0 bytes
tarfs: "home/config/settings/kernel/", 0 bytes
tarfs: "home/config/settings/kernel/drivers/", 0 bytes
tarfs: "home/config/settings/kernel/drivers/kernel", 2057 bytes
tarfs: "system/", 0 bytes
tarfs: "system/add-ons/", 0 bytes
tarfs: "system/add-ons/kernel/", 0 bytes
tarfs: "system/add-ons/kernel/bus_managers/", 0 bytes
tarfs: "system/add-ons/kernel/bus_managers/ata", 55939 bytes
tarfs: "system/add-ons/kernel/bus_managers/config_manager", 10883 bytes
tarfs: "system/add-ons/kernel/bus_managers/dpc", 14979 bytes
tarfs: "system/add-ons/kernel/bus_managers/pci", 60035 bytes
tarfs: "system/add-ons/kernel/bus_managers/scsi", 47747 bytes
tarfs: "system/add-ons/kernel/bus_managers/usb", 80578 bytes
tarfs: "system/add-ons/kernel/bus_managers/fdt", 10883 bytes
tarfs: "system/add-ons/kernel/busses/", 0 bytes
tarfs: "system/add-ons/kernel/busses/ata/", 0 bytes
tarfs: "system/add-ons/kernel/busses/ata/generic_ide_pci", 10883 bytes
tarfs: "system/add-ons/kernel/busses/ata/silicon_image_3112", 19075 bytes
tarfs: "system/add-ons/kernel/busses/ata/legacy_sata", 14979 bytes
tarfs: "system/add-ons/kernel/busses/ata/it8211", 10883 bytes
tarfs: "system/add-ons/kernel/busses/scsi/", 0 bytes
tarfs: "system/add-ons/kernel/busses/scsi/ahci", 55939 bytes
tarfs: "system/add-ons/kernel/busses/usb/", 0 bytes
tarfs: "system/add-ons/kernel/busses/usb/uhci", 105155 bytes
tarfs: "system/add-ons/kernel/busses/usb/ohci", 105155 bytes
tarfs: "system/add-ons/kernel/busses/usb/ehci", 109251 bytes
tarfs: "system/add-ons/kernel/console/", 0 bytes
tarfs: "system/add-ons/kernel/console/vga_text", 10883 bytes
tarfs: "system/add-ons/kernel/file_systems/", 0 bytes
tarfs: "system/add-ons/kernel/file_systems/attribute_overlay", 43651 bytes
tarfs: "system/add-ons/kernel/file_systems/bfs", 277123 bytes
tarfs: "system/add-ons/kernel/file_systems/iso9660", 47747 bytes
tarfs: "system/add-ons/kernel/file_systems/packagefs", 612995 bytes        
tarfs: "system/add-ons/kernel/file_systems/write_overlay", 68227 bytes     
tarfs: "system/add-ons/kernel/generic/", 0 bytes                           
tarfs: "system/add-ons/kernel/generic/ata_adapter", 19075 bytes            
tarfs: "system/add-ons/kernel/generic/locked_pool", 14979 bytes            
tarfs: "system/add-ons/kernel/generic/scsi_periph", 47747 bytes
tarfs: "system/add-ons/kernel/partitioning_systems/", 0 bytes
tarfs: "system/add-ons/kernel/partitioning_systems/intel", 92803 bytes
tarfs: "system/add-ons/kernel/partitioning_systems/session", 19075 bytes
tarfs: "system/add-ons/kernel/drivers/", 0 bytes
tarfs: "system/add-ons/kernel/drivers/disk/", 0 bytes
tarfs: "system/add-ons/kernel/drivers/disk/scsi/", 0 bytes
tarfs: "system/add-ons/kernel/drivers/disk/scsi/scsi_cd", 27267 bytes
tarfs: "system/add-ons/kernel/drivers/disk/scsi/scsi_disk", 19075 bytes
tarfs: "system/add-ons/kernel/drivers/disk/norflash", 14979 bytes
tarfs: "system/add-ons/kernel/drivers/bin/", 0 bytes
tarfs: "system/add-ons/kernel/drivers/bin/usb_disk", 88707 bytes
tarfs: "system/add-ons/kernel/drivers/dev/", 0 bytes
tarfs: "system/add-ons/kernel/drivers/dev/disk/", 0 bytes
tarfs: "system/add-ons/kernel/drivers/dev/disk/usb/", 0 bytes
tarfs: "system/add-ons/kernel/drivers/dev/disk/usb/usb_disk", 0 bytes
tarfs: "system/add-ons/kernel/boot/", 0 bytes
tarfs: "system/add-ons/kernel/boot/ata", 0 bytes
tarfs: "system/add-ons/kernel/boot/config_manager", 0 bytes
tarfs: "system/add-ons/kernel/boot/dpc", 0 bytes
tarfs: "system/add-ons/kernel/boot/pci", 0 bytes
tarfs: "system/add-ons/kernel/boot/scsi", 0 bytes
tarfs: "system/add-ons/kernel/boot/usb", 0 bytes
tarfs: "system/add-ons/kernel/boot/fdt", 0 bytes
tarfs: "system/add-ons/kernel/boot/ata_adapter", 0 bytes
tarfs: "system/add-ons/kernel/boot/locked_pool", 0 bytes
tarfs: "system/add-ons/kernel/boot/scsi_periph", 0 bytes
tarfs: "system/add-ons/kernel/boot/ahci", 0 bytes
tarfs: "system/add-ons/kernel/boot/generic_ide_pci", 0 bytes
tarfs: "system/add-ons/kernel/boot/silicon_image_3112", 0 bytes
tarfs: "system/add-ons/kernel/boot/legacy_sata", 0 bytes
tarfs: "system/add-ons/kernel/boot/it8211", 0 bytes
tarfs: "system/add-ons/kernel/boot/uhci", 0 bytes
tarfs: "system/add-ons/kernel/boot/ohci", 0 bytes
tarfs: "system/add-ons/kernel/boot/ehci", 0 bytes
tarfs: "system/add-ons/kernel/boot/scsi_cd", 0 bytes
tarfs: "system/add-ons/kernel/boot/scsi_disk", 0 bytes
tarfs: "system/add-ons/kernel/boot/usb_disk", 0 bytes
tarfs: "system/add-ons/kernel/boot/norflash", 0 bytes
tarfs: "system/add-ons/kernel/boot/intel", 0 bytes
tarfs: "system/add-ons/kernel/boot/session", 0 bytes
tarfs: "system/add-ons/kernel/boot/attribute_overlay", 0 bytes
tarfs: "system/add-ons/kernel/boot/bfs", 0 bytes
tarfs: "system/add-ons/kernel/boot/iso9660", 0 bytes
tarfs: "system/add-ons/kernel/boot/packagefs", 0 bytes
tarfs: "system/add-ons/kernel/boot/write_overlay", 0 bytes
tarfs: "system/kernel_arm", 2165897 bytes
<lockup>

Change History (1)

comment:1 by kallisti5, 5 years ago

This seems like the lockup point:

fBytesPerSector = read16(buf, 0xb);

It looks like buf used to be malloc'ed but is no-longer?

Note: See TracTickets for help on using tickets.