El jue, 16 mar 2023 a las 20:10, Florian Fainelli (<f.fainelli@xxxxxxxxx>) escribió: > > On 3/16/23 12:04, Álvaro Fernández Rojas wrote: > > El jue, 16 mar 2023 a las 19:13, Florian Fainelli > > (<f.fainelli@xxxxxxxxx>) escribió: > >> > >> On 3/16/23 11:07, Álvaro Fernández Rojas wrote: > >>> It's safe to show MMIO address. > >>> > >>> Signed-off-by: Álvaro Fernández Rojas <noltari@xxxxxxxxx> > >> > >> This is going to be the kernel virtual address, and while on MIPS it is > >> easy to resolve to the physical address because these platforms map > >> registers through KSEG0/1, on other platforms like ARM/ARM64 the kernel > >> virtual addresses are pretty meaningless unless what you want to debug > >> is how ioremap() mapped the address. > >> > >> I would rather do the following change: > >> > >> diff --git a/drivers/irqchip/irq-bcm6345-l1.c > >> b/drivers/irqchip/irq-bcm6345-l1.c > >> index 1bd0621c4ce2..832957d363a4 100644 > >> --- a/drivers/irqchip/irq-bcm6345-l1.c > >> +++ b/drivers/irqchip/irq-bcm6345-l1.c > >> @@ -261,6 +261,8 @@ static int __init bcm6345_l1_init_one(struct > >> device_node *dn, > >> if (!cpu->map_base) > >> return -ENOMEM; > >> > >> + request_mem_region(res.start, sz, res.name); > >> + > >> for (i = 0; i < n_words; i++) { > >> cpu->enable_cache[i] = 0; > >> __raw_writel(0, cpu->map_base + reg_enable(intc, i)); > >> > >> such that this shows up in /proc/iomem. WDYT? > > > > I tried doing it that way, but it still shows (ptrval): > > [ 0.000000] irq_bcm6345_l1: registered BCM6345 L1 intc (IRQs: 32) > > [ 0.000000] irq_bcm6345_l1: CPU0 at MMIO 0x(ptrval) (irq = 2) > > Well yes, if you don't remove the pr_info() you are still going to be > printing it, and because map_base is the return of ioremap() which is a > kernel virtual address, it is still hashed, also see Marc's message that > came in. I guess I should have been way more explicit and also provide a > tentative patch that also took out the pr_info(). Ah, sorry for that, I didn't get your point... However, I'd rather keep the pr_info, so I just removed the MMIO address in v2. > > > > > I checked /proc/iomem and it's shown: > > root@OpenWrt:/# cat /proc/iomem > > 00000000-03ffffff : System RAM > > 00010000-0068e96f : Kernel code > > 0068e970-008834ff : Kernel data > > 01610000-016458e7 : Kernel bss > > 08000000-0800ffff : BCM6348 PCI IO space > > 1e000000-1fffffff : 1e000000.nor nor@1e000000 > > 30000000-37ffffff : pci@fffe1000 > > 30000000-3000ffff : 0000:00:01.0 > > 30000000-3000ffff : ath9k > > fffe0004-fffe0007 : fffe0004.clock-controller clock-controller@fffe0004 > > fffe000c-fffe0013 : interrupt-controller@fffe000c > > fffe0034-fffe0037 : fffe0034.reset-controller reset-controller@fffe0034 > > fffe005c-fffe0067 : fffe005c.watchdog watchdog@fffe005c > > fffe0100-fffe0117 : fffe0100.serial serial@fffe0100 > > fffe1000-fffe11ff : fffe1000.pci pci > > fffe1300-fffe13ff : fffe1300.usb usb@fffe1300 > > fffe1400-fffe14ff : fffe1400.usb usb@fffe1400 > > fffe1500-fffe1537 : fffe1500.usb-phy usb-phy@fffe1500 > > > > Any idea why this could be hapenning? > > We now have the desired resource listed using its physical address: > > fffe000c-fffe0013 : interrupt-controller@fffe000c > > There could be a variety of improvements to how request_mem_region() is > called if you want to provide a break down of each resource on a per-CPU > basis. > -- > Florian > Álvaro