Lines Matching +full:entry +full:- +full:address

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
55 "\n-------------------------------------------------------------------------------\n"
60 /* EBDA is @ 40:0e in real-mode terms */
63 /* CMOS 'top of mem' is @ 40:13 in real-mode terms */
89 { UNKNOWN_BUSTYPE, "---" },
90 { UNKNOWN_BUSTYPE, "---" },
92 { UNKNOWN_BUSTYPE, "---" },
93 { UNKNOWN_BUSTYPE, "---" },
94 { UNKNOWN_BUSTYPE, "---" },
95 { UNKNOWN_BUSTYPE, "---" },
96 { UNKNOWN_BUSTYPE, "---" },
97 { UNKNOWN_BUSTYPE, "---" },
99 { UNKNOWN_BUSTYPE, "---" },
100 { UNKNOWN_BUSTYPE, "---" },
101 { UNKNOWN_BUSTYPE, "---" },
102 { UNKNOWN_BUSTYPE, "---" },
103 { UNKNOWN_BUSTYPE, "---" },
104 { UNKNOWN_BUSTYPE, "---" }
125 static void readEntry( void* entry, int size );
128 static void processorEntry( proc_entry_ptr entry );
129 static void busEntry( bus_entry_ptr entry );
130 static void ioApicEntry( io_apic_entry_ptr entry );
131 static void intEntry( int_entry_ptr entry );
133 static void sasEntry( sas_entry_ptr entry );
134 static void bhdEntry( bhd_entry_ptr entry );
135 static void cbasmEntry( cbasm_entry_ptr entry );
158 fprintf( stderr, "usage: mptable [-dmesg] [-verbose] [-grope] [-help]\n" ); in usage()
180 while ((ch = getopt(argc, argv, "d:g:h:v:")) != -1) { in main()
205 argc -= optind; in main()
220 fprintf( stderr, " suggest trying -grope option!!!\n\n" ); in main()
226 whereStrings[ where - 1 ], paddr ); in main()
236 if ( (defaultConfig = mpfps->config_type) ) in main()
239 MPConfigTableHeader( mpfps->pap ); in main()
252 * set PHYSICAL address of MP floating pointer structure
298 --segment; /* less ONE_KBYTE */ in apic_probe()
315 if ( target != (DEFAULT_TOPOFMEM - 1024)) { in apic_probe()
316 target = (DEFAULT_TOPOFMEM - 1024); in apic_probe()
436 printf( " physical address:\t\t0x%08x\n", paddr ); in MPFloatingPointer()
439 pnstr( mpfps->signature, 4 ); in MPFloatingPointer()
442 printf( " length:\t\t\t%d bytes\n", mpfps->length * 16 ); in MPFloatingPointer()
443 printf( " version:\t\t\t1.%1d\n", mpfps->spec_rev ); in MPFloatingPointer()
444 printf( " checksum:\t\t\t0x%02x\n", mpfps->checksum ); in MPFloatingPointer()
447 if ( mpfps->mpfb2 & 0x7f ) { in MPFloatingPointer()
448 printf( " warning, MP feature byte 2: 0x%02x\n", mpfps->mpfb2 ); in MPFloatingPointer()
452 printf( " mode:\t\t\t\t%s\n", (mpfps->mpfb2 & MPFB2_IMCR_PRESENT) ? in MPFloatingPointer()
455 /* MP feature bytes 3-5 are expected to be ZERO */ in MPFloatingPointer()
456 if ( mpfps->mpfb3 ) in MPFloatingPointer()
458 if ( mpfps->mpfb4 ) in MPFloatingPointer()
460 if ( mpfps->mpfb5 ) in MPFloatingPointer()
532 u_int8_t *entry; in MPConfigTableHeader() local
544 printf( " physical address:\t\t0x%08x\n", pap ); in MPConfigTableHeader()
547 pnstr( cth->signature, 4 ); in MPConfigTableHeader()
550 printf( " base table length:\t\t%d\n", cth->base_table_length ); in MPConfigTableHeader()
552 printf( " version:\t\t\t1.%1d\n", cth->spec_rev ); in MPConfigTableHeader()
553 printf( " checksum:\t\t\t0x%02x\n", cth->checksum ); in MPConfigTableHeader()
556 pnstr( cth->oem_id, 8 ); in MPConfigTableHeader()
560 pnstr( cth->product_id, 12 ); in MPConfigTableHeader()
563 printf( " OEM table pointer:\t\t0x%08x\n", cth->oem_table_pointer ); in MPConfigTableHeader()
564 printf( " OEM table size:\t\t%d\n", cth->oem_table_size ); in MPConfigTableHeader()
566 printf( " entry count:\t\t\t%d\n", cth->entry_count ); in MPConfigTableHeader()
568 printf( " local APIC address:\t\t0x%08x\n", cth->apic_address ); in MPConfigTableHeader()
570 printf( " extended table length:\t%d\n", cth->extended_table_length ); in MPConfigTableHeader()
571 printf( " extended table checksum:\t%d\n", cth->extended_table_checksum ); in MPConfigTableHeader()
589 oldtype = -1; in MPConfigTableHeader()
590 entry = mapEntry(pap + sizeof(*cth), cth->base_table_length); in MPConfigTableHeader()
591 for (c = cth->entry_count; c; c--) { in MPConfigTableHeader()
592 entrytype = *entry; in MPConfigTableHeader()
594 printf("--\n"); in MPConfigTableHeader()
602 processorEntry((proc_entry_ptr)entry); in MPConfigTableHeader()
603 entry += sizeof(struct PROCENTRY); in MPConfigTableHeader()
609 busEntry((bus_entry_ptr)entry); in MPConfigTableHeader()
610 entry += sizeof(struct BUSENTRY); in MPConfigTableHeader()
616 ioApicEntry((io_apic_entry_ptr)entry); in MPConfigTableHeader()
617 entry += sizeof(struct IOAPICENTRY); in MPConfigTableHeader()
623 intEntry((int_entry_ptr)entry); in MPConfigTableHeader()
624 entry += sizeof(struct INTENTRY); in MPConfigTableHeader()
630 intEntry((int_entry_ptr)entry); in MPConfigTableHeader()
631 entry += sizeof(struct INTENTRY); in MPConfigTableHeader()
644 if ( cth->extended_table_length ) { in MPConfigTableHeader()
651 ext_entry = mapEntry(pap + cth->base_table_length, in MPConfigTableHeader()
652 cth->extended_table_length); in MPConfigTableHeader()
653 end = (ext_entry_ptr)((char *)ext_entry + cth->extended_table_length); in MPConfigTableHeader()
655 switch (ext_entry->type) { in MPConfigTableHeader()
670 ext_entry = (ext_entry_ptr)((char *)ext_entry + ext_entry->length); in MPConfigTableHeader()
676 if ( cth->oem_table_pointer && (cth->oem_table_size > 0) ) { in MPConfigTableHeader()
680 oemdata = mapEntry( cth->oem_table_pointer, cth->oem_table_size); in MPConfigTableHeader()
720 readEntry( void* entry, int size ) in readEntry() argument
722 if ( read( pfd, entry, size ) != size ) in readEntry()
738 processorEntry( proc_entry_ptr entry ) in processorEntry() argument
744 printf( "\t\t%2d", entry->apic_id ); in processorEntry()
745 printf( "\t 0x%2x", entry->apic_version ); in processorEntry()
748 (entry->cpu_flags & PROCENTRY_FLAG_BP) ? "BSP" : "AP", in processorEntry()
749 (entry->cpu_flags & PROCENTRY_FLAG_EN) ? "usable" : "unusable" ); in processorEntry()
752 (entry->cpu_signature >> 8) & 0x0f, in processorEntry()
753 (entry->cpu_signature >> 4) & 0x0f, in processorEntry()
754 entry->cpu_signature & 0x0f ); in processorEntry()
756 printf( "\t 0x%04x\n", entry->feature_flags ); in processorEntry()
777 busEntry( bus_entry_ptr entry ) in busEntry() argument
786 printf( "\t\t%2d", entry->bus_id ); in busEntry()
787 printf( "\t " ); pnstr( entry->bus_type, 6 ); printf( "\n" ); in busEntry()
790 if ( (c = entry->bus_type[ x ]) == ' ' ) in busEntry()
795 busses[ entry->bus_id ] = lookupBusType( name ); in busEntry()
800 ioApicEntry( io_apic_entry_ptr entry ) in ioApicEntry() argument
806 printf( "\t\t%2d", entry->apic_id ); in ioApicEntry()
807 printf( "\t 0x%02x", entry->apic_version ); in ioApicEntry()
809 (entry->apic_flags & IOAPICENTRY_FLAG_EN) ? "usable" : "unusable" ); in ioApicEntry()
810 printf( "\t\t 0x%x\n", entry->apic_address ); in ioApicEntry()
812 apics[ entry->apic_id ] = entry->apic_id; in ioApicEntry()
821 "conforms", "active-hi", "reserved", "active-lo"
828 intEntry( int_entry_ptr entry ) in intEntry() argument
832 if ( entry->type == MPCT_ENTRY_INT ) in intEntry()
835 printf( "\t\t%s", intTypes[ entry->int_type ] ); in intEntry()
837 printf( "\t%9s", polarityMode[ entry->int_flags & INTENTRY_FLAGS_POLARITY ] ); in intEntry()
838 printf( "%12s", triggerMode[ (entry->int_flags & INTENTRY_FLAGS_TRIGGER) >> 2 ] ); in intEntry()
840 printf( "\t %5d", entry->src_bus_id ); in intEntry()
841 if ( busses[ entry->src_bus_id ] == PCI ) in intEntry()
843 (entry->src_bus_irq >> 2) & 0x1f, in intEntry()
844 (entry->src_bus_irq & 0x03) + 'A' ); in intEntry()
846 printf( "\t %3d", entry->src_bus_irq ); in intEntry()
847 printf( "\t %6d", entry->dst_apic_id ); in intEntry()
848 printf( "\t %3d\n", entry->dst_apic_int ); in intEntry()
853 sasEntry( sas_entry_ptr entry ) in sasEntry() argument
856 printf( "--\nSystem Address Space\n"); in sasEntry()
857 printf( " bus ID: %d", entry->bus_id ); in sasEntry()
858 printf( " address type: " ); in sasEntry()
859 switch ( entry->address_type ) { in sasEntry()
861 printf( "I/O address\n" ); in sasEntry()
864 printf( "memory address\n" ); in sasEntry()
867 printf( "prefetch address\n" ); in sasEntry()
874 printf( " address base: 0x%jx\n", (uintmax_t)entry->address_base ); in sasEntry()
875 printf( " address range: 0x%jx\n", (uintmax_t)entry->address_length ); in sasEntry()
880 bhdEntry( bhd_entry_ptr entry ) in bhdEntry() argument
883 printf( "--\nBus Hierarchy\n" ); in bhdEntry()
884 printf( " bus ID: %d", entry->bus_id ); in bhdEntry()
885 printf( " bus info: 0x%02x", entry->bus_info ); in bhdEntry()
886 printf( " parent bus ID: %d\n", entry->parent_bus ); in bhdEntry()
891 cbasmEntry( cbasm_entry_ptr entry ) in cbasmEntry() argument
894 printf( "--\nCompatibility Bus Address\n" ); in cbasmEntry()
895 printf( " bus ID: %d", entry->bus_id ); in cbasmEntry()
896 printf( " address modifier: %s\n", in cbasmEntry()
897 (entry->address_mod & CBASMENTRY_ADDRESS_MOD_SUBTRACT) ? in cbasmEntry()
899 printf( " predefined range: 0x%08x\n", entry->predefined_range ); in cbasmEntry()