Many other modules might trigger ACPI device registration. This means the the basic ACPI subsystem has to be up and available before much of the Hardware is usable. Hence, we can see that the ACPI subsystem gets registered here. What I am not certain of is when does this code get called?
Continue readingCategory Archives: Linux
ACPI root pointer from UEFI System Table.
As I found out after I posted my lat entry , the correct way to find the Root pointer for the ACPI tables is to get it from the EFI System table. Where does that get set? Here’s the general flow: again, we start at init/main.c. start_kernel. However, the call is not in the ACPI code, but rather in setup_arch. The call chain goes
start-Kernel->setup_arch->efi_init->efi_get_fdt_params and that seems to pull it our of initial_boot_params. I can’t quite see where that is initialized. Yet. From context it looks like it is constructed out of the kernel command line parameters. Still learning….
Building Linux tip-of-tree on an Ampere based system
I Have an Ampere Altra-Max/INGRASYS Yushan Server System running Centos 8 stream.
Because we are a chip manufacteror, we don’t sell end systems, we provide a reference platform that is a starting point for our customers to make a product. This leads to bizarre set of internal versus external names. One thing that you can rely on, however, is the identifier of the processor itself:
# cat /proc/cpuinfo processor : 0 BogoMIPS : 50.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x3 CPU part : 0xd0c CPU revision : 1 ... |
TO make this readable, use the utility lscpu:
[root@eng14sys-r 111 ~]# lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 80 On-line CPU(s) list: 0-79 Thread(s) per core: 1 Core(s) per socket: 80 Socket(s): 1 NUMA node(s): 1 Vendor ID: ARM BIOS Vendor ID: Ampere(R) Model: 1 Model name: Neoverse-N1 BIOS Model name: Ampere(R) Altra(R) Processor Stepping: r3p1 CPU max MHz: 3000.0000 CPU min MHz: 1000.0000 BogoMIPS: 50.00 L1d cache: 64K L1i cache: 64K L2 cache: 1024K NUMA node0 CPU(s): 0-79 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs |
I want to build the latest Linus-repo Linux Kernel and run it on the server. Here’s the steps I went through.
Continue readingWhat packages are Needed to build the Kernel
In my quest to automate the testing of the Linux Kernel, I need to automate the build of the Linux Kernel. To build the Kernel, you need the requisite packages. What are they? Let’s find out.
Continue readingRemote build of the Linux Kernel via Ironic
Ampere Computing chips run the ARM64 instruction set. My laptop is a Dell running x86_64. In order to edit locally, but build remotely, I make use of servers in our datacenter. These are the steps I am taking.
Continue reading