Go to advanced search

by Ultibo
Fri Nov 12, 2021 9:45 pm
Forum: Bare metal, Assembly language
Topic: Data Abort exception - am I blind?
Replies: 6
Views: 295

Re: Data Abort exception - am I blind?

There is one other question though... in the beginning I ask the mailboxes about available memory, and the result is: Pi ARM memory: 128MB Pi GPU memory: 128MB Shouldn't the sum of it be 512MB - I mean, the piZero DOES have 512MB - at least they say so... (I didn't change the config txt, there is n...
by Ultibo
Fri Nov 12, 2021 9:40 pm
Forum: Bare metal, Assembly language
Topic: RPi 4B - MMU config with "high-peri" profile
Replies: 8
Views: 479

Re: RPi 4B - MMU config with "high-peri" profile

It isn't bare metal but if you're using the stock Linux kernel and DTs then high peri mode just works. The documentation is old as there is no need for a modified device tree or ARM stub. Thanks for that, I had a look at the arm stubs and they do indeed have support for high peripheral mode now. I ...
by Ultibo
Thu Nov 11, 2021 11:39 pm
Forum: Bare metal, Assembly language
Topic: PiCamera capture and HDMI display without RaspberryPi OS?
Replies: 1
Views: 174

Re: PiCamera capture and HDMI display without RaspberryPi OS?

Before coming here, I have searched for quite some time, and the closest reference I could find is ultibo (https://ultibo.org), which seems to contain a nice VC4 driver. However, I could not find the code allowing PiCamera capture (furthermore, their installation/development approach is very partic...
by Ultibo
Thu Nov 11, 2021 11:28 pm
Forum: Bare metal, Assembly language
Topic: Bare metal access to camera in Pi3 or Pi4 ?
Replies: 8
Views: 517

Re: Bare metal access to camera in Pi3 or Pi4 ?

Ultibo seems promising on paper (they claim full support for the camera on the Pi3) but I can't seem to understand how it's structured. Their distribution seems to be binary, not source code. Ultibo is fully open source so I'm not sure where you are looking exactly. The source for Ultibo core is he...
by Ultibo
Thu Nov 11, 2021 11:17 pm
Forum: Bare metal, Assembly language
Topic: kernel does not load if I change the defaul load address(kernel_address)
Replies: 1
Views: 226

Re: kernel does not load if I change the defaul load address(kernel_address)

I tried to change the kernel_address=[any_address_other_than_defaul](for example kernel_address=0x7F78E), and I cannot see the Hello World printed on the UART. I tried reflecting this change of load_address in the linker script, but it still would not print Hello World. The address 0x7F78E is 2 byt...
by Ultibo
Thu Nov 11, 2021 11:11 pm
Forum: Bare metal, Assembly language
Topic: RPi 4B - MMU config with "high-peri" profile
Replies: 8
Views: 479

Re: RPi 4B - MMU config with "high-peri" profile

Is there no one who has tried high-peri mode? I did not find any references in either Ultibo or Circle++ so I assume they both run in low-peri mode in the Pi4... Hi Schnoogle, This might not be helpful to you since as you correctly observed we haven't tried to do anything with high peripheral mode ...
by Ultibo
Wed Aug 25, 2021 3:15 am
Forum: Bare metal, Assembly language
Topic: Pi 4 bare metal GPIO interrupt example?
Replies: 2
Views: 1090

Re: Pi 4 bare metal GPIO interrupt example?

Are there any examples that work on the Pi 4 so that I could have something to work off of? It doesn't have to be an in-depth tutorial or anything, even just an open source program or library that uses interrupts would be fine. There aren't many bare metal projects that work with Pi 4 yet, both Cir...
by Ultibo
Mon Dec 07, 2020 12:58 am
Forum: Bare metal, Assembly language
Topic: Booting with device tree disabled?
Replies: 2
Views: 834

Re: Booting with device tree disabled?

Has anyone had any success booting a bare-metal image with device tree (DTB) loading disabled? I can confirm that it is possible to load a 32-bit kernel image on the RPi4 without device tree enabled using the latest firmware version (downloaded today), that is with nothing on the SD card except a k...
by Ultibo
Wed May 27, 2020 10:27 am
Forum: Bare metal, Assembly language
Topic: Pi3 - VCHIQ - mailbox property returns 0xffff_ffff when setting base address
Replies: 9
Views: 1286

Re: Pi3 - VCHIQ - mailbox property returns 0xffff_ffff when setting base address

So - anything one can spot on? Well, first the error you are getting is quite familiar. When we first tried to initialize the VCHIQ using the mailbox call we got something very similar as the result. In our case it turned out to be an incorrect size of the slot zero (or more correctly the shared st...
by Ultibo
Tue Jan 14, 2020 9:28 am
Forum: Bare metal, Assembly language
Topic: Need another pair of eyes - booting a kernel.img
Replies: 17
Views: 2533

Re: Need another pair of eyes - booting a kernel.img

Malban wrote:
Tue Jan 14, 2020 9:16 am
Can a device tree passed to the kernel instead of a ATAG list?
Since recent firmware versions, Raspberry Pi always passes device tree information to the kernel unless you take explicit steps to ensure ATAGs.

Current versions of Raspbian only work with device tree and will fail if passed ATAGs.
by Ultibo
Mon Jan 13, 2020 2:24 am
Forum: Bare metal, Assembly language
Topic: Setting Up A DMA Transfer - Bare Metal Rust AARCH64
Replies: 12
Views: 1985

Re: Setting Up A DMA Transfer - Bare Metal Rust AARCH64

When I store the DMA control block instance structure as a constant in the read-only program memory area ( 0x00085940 in the example below) the DMA register is populated with the information stored in the DMA control block when CONBLK_AD is set to 0x00085940 (note the upper bytes of CONBLK_AD are n...
by Ultibo
Fri Jun 28, 2019 12:14 am
Forum: Bare metal, Assembly language
Topic: Creating a bootloader that writes to CPUACTLR?
Replies: 14
Views: 7206

Re: Creating a bootloader that writes to CPUACTLR?

For all cpus, in __hyp_stub_install_secondary I think that's the wrong place to put this, at the time of calling __hyp_stub_install_secondary you are still in hypervisor mode. You need to insert this after the call to safe_svcmode_maskall which switches back to supervisor mode instead, immediately ...
by Ultibo
Wed Jun 26, 2019 12:04 am
Forum: Bare metal, Assembly language
Topic: Raspberry Pi 4
Replies: 59
Views: 20260

Re: Raspberry Pi 4

Here in my country you can't buy it yet. There are many ads of course, but when you click on them and go to the official reseller's webshop, RPi3B+ is the newest model to choose. :-( Hopefully in a week I can order too! There seems to be a fairly long delay in Australia too, major suppliers are quo...
by Ultibo
Wed Jun 26, 2019 12:01 am
Forum: Bare metal, Assembly language
Topic: Flush L1 cache BCM2837B0
Replies: 2
Views: 1709

Re: Flush L1 cache BCM2837B0

How can I get the USB back up with MMU enabled? I'm wondering if it's a coherency/DMA issue or something else to do with the MMU. You only talk in your description and your code snippet about cleaning or flushing the cache but for DMA operations to the USB controller you need two different scenario...
by Ultibo
Tue Jun 25, 2019 11:50 pm
Forum: Bare metal, Assembly language
Topic: Creating a bootloader that writes to CPUACTLR?
Replies: 14
Views: 7206

Re: Creating a bootloader that writes to CPUACTLR?

This scheme also worked in circle baremetal library, but not in linux, likely because mmu is turned on and mapping is missing for this data. Are you trying to do this for the primary CPU, one of the secondary CPUs or for all of them? If the point in the kernel where you are trying to insert code al...
by Ultibo
Thu Apr 25, 2019 7:57 am
Forum: Bare metal, Assembly language
Topic: Error on set Palette - 8 bit Framebuffer
Replies: 10
Views: 2190

Re: Error on set Palette - 8 bit Framebuffer

That would be the offset and length fields themselves which are included in the size. They are already in the struct which already accounts for them... It would if the driver used sizeof(packet) but it doesn't, it uses (2 + packet->length) * sizeof(u32) instead to account for the offset and length....
by Ultibo
Thu Apr 25, 2019 1:41 am
Forum: Bare metal, Assembly language
Topic: Error on set Palette - 8 bit Framebuffer
Replies: 10
Views: 2190

Re: Error on set Palette - 8 bit Framebuffer

So the documentation is very wrong :-) The minimum size is 20 and this command is quirky compared to all the other tag commands you have to add 2 random entries at the back of the palette for no obvious reason. I can set values in those phantom u32 and they remain untouched but have to be there. Th...
by Ultibo
Thu Apr 25, 2019 12:30 am
Forum: Bare metal, Assembly language
Topic: Run Raspbian on 3 cores, Arduino-ish on fourth core?
Replies: 13
Views: 3428

Re: Run Raspbian on 3 cores, Arduino-ish on fourth core?

What you want to do has been asked multiple times before. Isolating a CPU from Linux is simple enough, search for the ISOLCPUS option and you should find a lot of discussion. Actually making use of that CPU for other things is much more complicated and I don't know if anyone has completely resolved ...
by Ultibo
Thu Apr 25, 2019 12:20 am
Forum: Bare metal, Assembly language
Topic: Error on set Palette - 8 bit Framebuffer
Replies: 10
Views: 2190

Re: Error on set Palette - 8 bit Framebuffer

The palette must have to be spaced out r,g, b, A on seperate message values which is obvious because of the minimum 24 byte request ... So the request length formula is 8 + (16 * palette entries) Given the length restriction to 1032 you can only change 64 palettes at a time This is not correct, the...
by Ultibo
Thu Apr 11, 2019 12:30 am
Forum: Bare metal, Assembly language
Topic: Alignment issues in porting CSUD for RPI 3B (32 Bit) with minimal changes
Replies: 45
Views: 7340

Re: Alignment issues in porting CSUD for RPI 3B (32 Bit) with minimal changes

I checked mouse has only 1 configuration , 1 interface and only 1 endpoint (that should be endpoint 0). I tried fetching interface descriptor and it was successful. I tried fetching endpoint descriptor for endpoint 0 and again it resulted in stall error. Here in circle code https://github.com/rsta2...
by Ultibo
Thu Mar 14, 2019 9:39 am
Forum: Bare metal, Assembly language
Topic: RPI3 QEMU
Replies: 53
Views: 60705

Re: RPI3 QEMU

... I see you also have a Generic Timer workaround in place. It isn't really a workaround, more of an option for those that need it. We use the Generic Timers to drive the scheduler on each core (similar to what you were wanting to do here ) but we also include an option to use the System Timer for...
by Ultibo
Thu Mar 14, 2019 9:34 am
Forum: Bare metal, Assembly language
Topic: Creating a bootloader that writes to CPUACTLR?
Replies: 14
Views: 7206

Re: Creating a bootloader that writes to CPUACTLR?

It means using kernel_old=1 in config.txt to pick the ARM up raw at 0x0 doing all the stuff in armstub7.s with your new code and then booting into what would have been the original kernel8-32.img. That won't help because kernel_old=1will disable the device tree loading by the firmware and the Linux...
by Ultibo
Tue Mar 12, 2019 10:48 pm
Forum: Bare metal, Assembly language
Topic: RPI3 QEMU
Replies: 53
Views: 60705

Re: RPI3 QEMU

... Assuming qemu could emulate the BCM System Timer, what other peripherals are needed to boot bare metal projects like Circle, Ultibo... We took the opposite approach, instead of waiting for QEMU to emulate a Raspberry Pi we added QEMU support to Ultibo. The advantage of this approach is that we ...
by Ultibo
Wed Mar 06, 2019 6:35 am
Forum: Bare metal, Assembly language
Topic: CNTP interrupt not firing
Replies: 38
Views: 6768

Re: CNTP interrupt not firing

I know you have running code so that makes me think there is another clock I haven't found so could you outline your register setup to run from 19.2Mhz because I have definitely only found 38.4Mhz so far. QA7_rev3.4.pdf page 9 Section 4.2 Control register Bit 8: Core timer clock source If clear the...
by Ultibo
Thu Feb 28, 2019 10:56 pm
Forum: Bare metal, Assembly language
Topic: CNTP interrupt not firing
Replies: 38
Views: 6768

Re: CNTP interrupt not firing

Every higher priority level have more timeslices than the one beneath, and the top 3 levels are uninterruptible, meaning when the IRQ handler is executed, it won't call the scheduler Hi bzt, What is your rationale for choosing to make the top 3 priority levels uninterruptible? Why not (as we do in ...

Go to advanced search